zoukankan      html  css  js  c++  java
  • 解决nginx启动时域名解析失败而导致服务启动失败的问题

    问题:

    nginx启动或者reload的时候,会对proxy_pass后面的域名进行DNS解析,如果解析失败,启动就会失败或者reload失败。

    我们是to B的产品,客户的环境可能是不通公网的,因此不能使用公网DNS服务,进而导致在ng启动的时候,对proxy_pass后紧跟域名的dns解析失败,最终导致nginx启动失败。

    解决方案:

    不直接在proxy_pass后写域名,而通过变量的方式配置,如下:

     set $target https://www.xxx.com;
     proxy_pass $target ;

    除了上面的配置之外,还要在server属性的平行域下使用resolver指令,如下

    resolver 114.114.114.114;

    Why?

    假如proxy_pass后紧跟域名,那么在nginx启动的时候,会使用/etc/resolv.conf下配置的DNS服务器进行域名解析。

    采用变量的方式后,nginx启动时不会再去解析变量所对应的域名,但是会在进行代理访问的时候,进行域名解析,此时不会使用/etc/resolv.conf配置的DNS服务器,必须使用reslover指令指定DNS服务地址。

  • 相关阅读:
    HTML5基础内容(二)
    JavaScript逻辑运算符
    JavaScript自增运算符和自减运算符
    JavaScript算数运算符和一元运算符
    CSS分页
    HTML和CSS遇到的细节问题
    JavaScript数据类型转换
    JavaScript标识符
    HTML5基础知识汇总(一)
    CSS颜色透明度
  • 原文地址:https://www.cnblogs.com/think-in-java/p/10560631.html
Copyright © 2011-2022 走看看