明天提交一个零碎到测试服,测试服 php 版本 7.2,laravel 的 8.0 要 7.3 以上,测试服我的项目太多,还有很多很古老的我的项目,不好轻易降级,就打算放到一个不太重要的我的项目机器上,他俩共用一台机器,那个 php 版本比拟高
操作是间接建设好公布零碎,更新代码到新服务器
而后解析域名,copy 一个 nginx 配置进去,批改下域名、门路和日志,重启时报 nginx for 0.0.0.0:443 谬误,nginx: [emerg] duplicate listen options for 0.0.0.0:443 in /nginx/conf.d/xxx.com.conf:3
查了下:
大略是说反复的选项,那哪里反复了呢?
default_server,间接 copy 的第一个站点,第二个批改时也有 default_server
很显著,只能有一个默认服务器
如果存在 default_server 参数,将使服务器成为指定地址:端口对的默认服务器。
而后还说,listen 指令能够具备特定于与套接字相干的零碎调用的几个附加参数。它们能够在任何监听指令中指定,但对于给定地址:端口对只能指定一次。
所以,应删除第二站站点的 default,尝试后问题解决
参考一原文地址:https://github.com/alibaba/te…
参考示例:第一个
server {
listen 443 ssl http2 fastopen=3;
server_name www.example.me;
能够放弃不变 或者 保险能够加个 default, 改成
server {
listen 443 default ssl http2 fastopen=3;
server_name www.example.me;
前面所有的 listen 443 ssl 把 ssl 局部删了, 只有 listen 443 就行
server {
listen 443;
试试这样可不可以,我没来工夫测试
参考二原文地址:http://mailman.nginx.org/pipe…
Socket can't be in ssl mode for some servers and in non-ssl for
others, so there is no need to specify "ssl" argument for
non-default servers. I.e. this will work with ssl in both
servers:
server {
listen 443 default ssl;
...
}
server {
listen 443;
...
}
In your first configuration nginx was able to detect that you used
meaningless "ssl" argument in second server and complained. In
second configuration it wasn't able to detect meaningless"ssl
on;" statement. This is the only difference.
Maxim Dounin