我是靠谱客的博主 故意秀发,这篇文章主要介绍在同一目录下Nginx对多个配置文件的读取顺序问题,现在分享给大家,希望可以做个参考。

首先,说明结论:同一目录下存在多个配置文件时,Nginx是按照文件的名称先后顺序依次读取的!

背景:

Nginx做反向代理时,可能需要代理多个服务器,这时,有一种可行的方案就是将不同的代理服务器配置在不同的配置文件中,如:

复制代码
1
2
3
4
5
[root@localhost conf.d]# pwd /mydata/nginx/conf/conf.d [root@localhost conf.d]# ls default.conf orderSys.conf productSys.conf

三个配置文件的内容分别为:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
[root@localhost conf.d]# cat default.conf server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ .php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /.ht { # deny all; #} } [root@localhost conf.d]# cat orderSys.conf server { listen 80; server_name order.com; location / { proxy_set_header Host $host; proxy_pass http://order; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } [root@localhost conf.d]# cat productSys.conf server { listen 80; server_name product.com; location / { proxy_set_header Host $host; proxy_pass http://product; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }

此处再次强调,Nginx是按照文件的名称先后顺序读取的!
因此,如果default.conf、orderSys.conf、productSys.conf三个文件代理的内容有优先级,则需要根据优先级排列三个配置。必要的时候,可以通过命名规则排序,如:01-default.conf、02-productSys.conf、03-orderSys.conf。避免因为顺序不当导致代理结果异常,最终导致访问异常,如下所示:

复制代码
1
2
3
4
5
6
Whitelabel Error Page This application has no configured error view, so you are seeing this as a fallback. Thu Feb 18 23:26:40 CST 2021 [84e87484-818] There was an unexpected error (type=Not Found, status=404).

最后

以上就是故意秀发最近收集整理的关于在同一目录下Nginx对多个配置文件的读取顺序问题的全部内容,更多相关在同一目录下Nginx对多个配置文件内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部