nginx冲突服务器名称在语法错误上不清楚
以下对服务器名称的调用将生成一个错误,并忽略第三级域,从而创建指向同一“/”页面的无限循环 如果删除了最终条目nginx冲突服务器名称在语法错误上不清楚,nginx,Nginx,以下对服务器名称的调用将生成一个错误,并忽略第三级域,从而创建指向同一“/”页面的无限循环 如果删除了最终条目 server_name slf.online www.slf.online mrkt.slf.online api.slf.online; nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 但该流量不是为该三级域路由的。 我看不出一个有效的三级域的语法哪里错了 此域集站点启用/slf的此
server_name slf.online www.slf.online mrkt.slf.online api.slf.online;
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
但该流量不是为该三级域路由的。我看不出一个有效的三级域的语法哪里错了 此域集
站点启用/slf
的此配置文件有两个服务器
块,其中第二个块由letsencrypt生成,用于将流量重定向到https页面:
if ($host = artterm.slf.online) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
return 404; # managed by Certbot
我不明白这段代码怎么可能是问题的根源。如果第二个块起作用(为什么没有最后一个条目不会产生忽略情况?)
另一个配置文件具有相同的二级域,但具有不同的三级域
server_name prva.sfl.online prve.slf.online sales.slf.online;
这是另一种罪责的假设,但我再一次看不出脆性来自何处
如何克服这一问题?@Richard Smith的评论是正确的
nginx-T
,为nginx提供了完整的配置堆栈,显示Lets Encrypt正在将证书和server\u name
数据写入一个单独的证书,低于我通常对该应用程序配置的期望值(并且在屏幕外,因此将我甩下)
这自然会将流量引导到另一个应用程序的逻辑,该逻辑不知道如何处理请求,并将其引导到非自退出循环
注意:这不是我第一次从自动化的Let's Encrypt脚本中观察到意外、不稳定的行为。使用nginx-T
(大写T
)查看所有包含文件的整个配置。检查包含listen 443
指令的server
块中重复的server\u名称
。
server_name prva.sfl.online prve.slf.online sales.slf.online;