【发布时间】:2014-05-03 15:10:56
【问题描述】:
我有 2 个龙卷风应用程序,我正在尝试使用 nginx 作为它们的代理,但我需要将这些应用程序提供在相同的地址但不同的位置(访问 app1 使用 URL http://myserver/app1,app2 使用 URL http://myserver/app2)。
我的nginx配置文件/etc/nginx/conf.d/myserver.conf:
upstream app1 {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
upstream app2 {
server 127.0.0.1:9081;
server 127.0.0.1:9082;
}
server {
listen 80;
access_log /var/log/nginx/myserver.access.log;
error_log /var/log/nginx/myserver.error.log;
location app1/static {
root /path/to/app1/;
if ($query_string) {
expires max;
}
}
location app2/static {
root /path/to/app2/;
if ($query_string) {
expires max;
}
}
location /app1/ {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://app1/;
}
location /app2/ {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://app2/;
}
}
例如,当我通过龙卷风访问 app1 时,它可以正常工作:
- 通过龙卷风:
http://myserver:8081/重定向到登录http://myserver:8081/auth/login。 好。 - 通过 nginx:
http://myserver/app1重定向到http://myserver/auth/login(它应该重定向到http://myserver/app1/auth/login)。
什么是正确的 nginx 配置才能使其工作?
【问题讨论】:
标签: nginx proxy location config tornado