~/app1
~/app2
~/app3
我想要使用子目录的方式,让nginx代理这些应用程序。
http://example.com/app1
http://example.com/app2
http://example.com/app3
我很好奇nginx是否支持我能够在多个文件中定义这些位置,这样我就可以将每个配置与应用程序一起保存,而不是为所有应用程序使用一个庞大的配置文件。
~/app1/nginx.conf
~/app2/nginx.conf
~/app3/nginx.conf
我天真地尝试在每个3个配置文件中用单个location指令来定义服务器,结果出现了“conflicting server name "example.com" on [::]:80, ignored”的冲突。配置文件如下所示:
upstream app1 { server 127.0.0.1:4567; }
server {
listen [::]:80;
listen 80;
servername example.com
location /app1 {
proxy_pass http://app1;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Request-Start $msec;
}
}
有没有一种方法可以这样组织配置文件?
server块中无法定义多个上游,但我认为这个答案很好地满足了OP的需求。 - jeteon