首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于语法错误,nginx冲突的服务器名称不清楚

问由于语法错误,nginx冲突的服务器名称不清楚
EN

Stack Overflow用户
提问于 2020-10-26 22:39:28
回答 1查看 19关注 0票数 0

下面的服务器名称调用会生成一个错误,并忽略第三级域,从而创建指向同一"/“页面的无限循环。

代码语言:javascript
复制
server_name slf.online www.slf.online mrkt.slf.online api.slf.online artterm.slf.online;
[...]
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mrkt.slf.online-0001/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mrkt.slf.online-0001/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

nginx: [warn] conflicting server name "artterm.slf.online" on 0.0.0.0:443, ignored

如果删除了最后一个条目

代码语言:javascript
复制
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

但是该业务不会被路由到该第三级域。

我看不出有效的3级域的语法在哪里是错误的。

代码语言:javascript
复制
if ($host = artterm.slf.online) {
    return 301 https://$host$request_uri;
} # managed by Certbot

listen 80;
return 404; # managed by Certbot

我不明白这段代码怎么可能是问题的根源。如果第二个块也在运行(为什么最后一个条目的缺失不会造成忽略情况?)

还有另一个配置文件具有相同的二级域,但具有不同的三级域

代码语言:javascript
复制
server_name prva.sfl.online prve.slf.online sales.slf.online;

这是另一个关于罪责的假设,但我又一次看不到脆性来自哪里。

如何克服这些问题呢?

EN

回答 1

Stack Overflow用户

发布于 2020-10-27 04:49:41

@Richard Smith的评论是正确的。

为nginx提供完整配置堆栈的nginx -T透露,Lets正在将证书和server_name数据写入一个单独的证书,低于我对该应用程序配置的正常预期(并且脱离了屏幕,从而使我离开)。

这自然会将流量引向另一个应用程序的逻辑,该逻辑不知道如何处理该请求,并将其定向到一个非自退出循环。

注意:这不是我第一次观察到自动化的让我们加密脚本的意想不到的,不可靠的行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64539282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档