nginx 监听相同的端口时配置文件加载顺序

Nginx 配置文件注意点

  1. 端口配置
    监听的端口不能被其他的进程占用,比如8080端口如果已经被tomcat占用的话,Nginx在监听的过程中就会出现如下错误:
    这里写图片描述
    所以在配置监听的端口时,要检查端口的占用情况
  2. 配置文件匹配的优先顺序
    当在/etc/nginx/conf.d/目录下有多个Nginx配置文件,且监听的端口号相同时,会优先选择配置了匹配的server_name且值不为localhost的配置文件。如果server_name只有为localhost的配置文件和没有配置server_name的配置文件,则会选择localhost的配置文件。如果监听的端口号及server_name配置的值都一样,则优先选择该目录下第一个配置文件。

    • 例子1
      在/etc/nginx/conf.d/中有三个配置文件,依次为a.conf,b.conf,c.conf
      a.conf 配置:
      nginx 监听相同的端口时配置文件加载顺序_第1张图片
      b.conf 配置
      nginx 监听相同的端口时配置文件加载顺序_第2张图片
      c.conf 配置
      nginx 监听相同的端口时配置文件加载顺序_第3张图片
      假设ip地址为108.142.159.59,在浏览器中通过ip访问nginx的80端口,则将会读取b.conf的配置文件,其他两个监听了相同端口的配置忽略
    • 例子2
      在/etc/nginx/conf.d/中有三个配置文件,依次为a.conf,b.conf
      a.conf 配置:
      nginx 监听相同的端口时配置文件加载顺序_第4张图片
      b.conf 配置
      nginx 监听相同的端口时配置文件加载顺序_第5张图片
      假设ip地址为108.142.159.59,在浏览器中通过ip访问nginx的80端口,则将会读取a.conf的配置文件,另一个监听了相同端口的配置忽略
    • 例子3
      在/etc/nginx/conf.d/中有两个配置文件,依次为a.conf,b.conf
      a.conf 配置:
      nginx 监听相同的端口时配置文件加载顺序_第6张图片
      b.conf 配置:
      nginx 监听相同的端口时配置文件加载顺序_第7张图片
      假设ip地址为108.142.159.59,在浏览器中通过ip访问nginx的80端口,则将会根据现实顺序读取a.conf的配置文件,另一个监听了相同端口的配置忽略

    补充:如果配置文件中没有server_name进行监听,就会任意匹配一个,比如:
    在/etc/nginx/conf.d/中有一个配置文件为a.conf

    nginx 监听相同的端口时配置文件加载顺序_第8张图片
    假设ip地址为108.142.159.59,在浏览器中通过ip访问nginx的80端口,因为没有匹配,所以会自动匹配
    a.conf。

不过这只是自身配置过程中发现的注意点,可能存在问题,有的话欢迎指正

你可能感兴趣的:(nginx相关)