如果配置文件中的多个站点之一无法解析,nginx 将无法启动。 “在上游找不到主机”

Posted

技术标签:

【中文标题】如果配置文件中的多个站点之一无法解析,nginx 将无法启动。 “在上游找不到主机”【英文标题】:nginx fails to start if one of the many sites in its config file not resolving. "host not found in upstream" 【发布时间】:2021-10-29 16:22:52 【问题描述】:

如果“proxy_pass”站点之一未启动或不再解析,nginx 将无法启动,从而使所有其他站点停止运行。如果其中一个站点出现故障,我怎样才能让它不在乎。

nginx.conf 看起来像这样:

    include /etc/nginx/modules-enabled/*.conf;
stream 
        server 
        listen 80;
        proxy_pass insertwebsitehere.com
        
      
events

【问题讨论】:

这能回答你的问题吗? Setup nginx not to crash if host in upstream is not found 【参考方案1】:

您可以在 conf 中使用解析器:

...
server 
        resolver           8.8.8.8;
        listen             80;
        proxy_pass         http://insertwebsitehere.com/;
...

【讨论】:

如果我的域是内部域并且不能被 8.8.8.8 解析怎么办? 然后使用您的内部 DNS 而不是 8.8.8.8 @mismar 谢谢阿明,这很有效。现在解决了。但是,如果没有与 proxy_pass 条目匹配的记录,则 in 无法启动。我可能在这里问了一个错误的问题,但是有没有办法让 nginx 不在乎是否有记录,而只是跳过那个特定的服务器条目? 是的,我认为如果您在某个位置下设置解析器,如果出现故障,将忽略该代理。我建议打开新问题并在那里得到答案@mismar 如果这个答案对你有用,请接受它以帮助其他人找到答案@mismar

以上是关于如果配置文件中的多个站点之一无法解析,nginx 将无法启动。 “在上游找不到主机”的主要内容,如果未能解决你的问题,请参考以下文章

nginx虚拟主机配置

Nginx部署多个站点

Nginx虚拟主机配置Nginx的Rwrite配置

请教nginx 多个 server 怎么配置

nginx怎么配置多个web

阿里云Linux系统Nginx配置多个域名的方法