nginx:如何划分 /etc/nginx/conf.d/default.conf ?
Posted
技术标签:
【中文标题】nginx:如何划分 /etc/nginx/conf.d/default.conf ?【英文标题】:nginx: how to divide /etc/nginx/conf.d/default.conf ? 【发布时间】:2018-08-15 20:00:51 【问题描述】:寻找一种划分 /etc/nginx/conf.d/default.conf 的方法,例如每个站点。任何想法? 当前文件如下所示:
upstream Master_MAT
server 172.18.0.3:8080;
upstream Master_PAT
server 172.18.0.4:8080;
server
listen 80;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
root /etc/nginx/html;
index index.html index.php;
#charset koi8-r;
location /
root /etc/nginx/html;
try_files $uri /$uri $uri/ =404;
location /Master_MAT
proxy_set_header Host $proxy_host;
proxy_pass http://Master_MAT/Master_MAT;
# proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /Master_PAT
proxy_set_header Host $proxy_host;
proxy_pass http://Master_PAT/Master_PAT;
# proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
有没有办法将 Master_MAT 放在不同的文件中?尝试使用“包含”但失败。
谢谢
【问题讨论】:
【参考方案1】:大多数人建议使用sites-enabled
和sites-available
approach:
http
…
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
现在您可以将“已禁用”的网站留在 sites-available
中,并在您希望使用时将其移动到 sites-enabled
文件夹中。
这是一个通配符,因此您可以为每个站点创建新的.conf
文件,它会自动加载它们。
这是/etc/nginx/sites-available/example.com
内部内容的示例
server
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location /
try_files $uri $uri/ =404;
【讨论】:
不确定我是否了解每个文件的外观。你能更详细一点吗? THX 我添加了一个例子。服务器块内部的内容 100% 取决于您的用例和网站......但您会将所有内容包装在server
块中
当我尝试创建多个文件时,我收到以下错误:2018/03/08 13:26:52 [emerg] 1028#1028: a duplicate default server for 0.0.0.0 /etc/nginx/conf.d/conf/New3.conf:2 中的 :80 nginx: [emerg] /etc/nginx/conf.d/conf/New3.conf 中 0.0.0.0:80 的重复默认服务器: 2 -- 有什么想法吗?? THX
您可能需要指定域。我猜是因为你有冲突的主机+端口匹配。这应该是一个单独的问题,因为它涉及到 Nginx 的内部。以上是关于nginx:如何划分 /etc/nginx/conf.d/default.conf ?的主要内容,如果未能解决你的问题,请参考以下文章
Nginx——nginx作为负载均衡服务(负载均衡与nginx)
nginx 11个处理阶段 && nginx lua 8个处理阶段