【发布时间】:2017-01-10 21:58:33
【问题描述】:
我有 2 个应用程序在同一服务器上的不同端口 [8080,8090] 具有相同的域。
我已将 nginx 配置如下:
server {
listen 80 ;
server_name XXX.XXX.XXX;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location /{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:8080;
}
location /admin {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:8090;
}
}
问题是端口 8080 上的第一个应用程序工作正常,但其他应用程序 CSS 未加载时出现 404 错误。似乎它指向 / 目录。处理这种情况的最佳方法是什么?
如果 /admin 应用程序受到任何影响,应用程序应返回 /Login 页面,我正在查看 nginx 日志:
xx.xx.xx.xx - - [03/Sep/2016:09:00:35 +0000] "GET /admin/ HTTP/1.1" 302 0 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:39.0) Gecko/20100101 Firefox/39.0" "-"
xx.xx.xx.xx - - [03/Sep/2016:09:00:36 +0000] "GET /Login HTTP/1.1" 404 0 "-" "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:39.0) Gecko/20100101 Firefox/39.0" "-"
它显示 nginx 代理 /admin 到正确的应用程序,然后 /Login 不在配置中,所以它返回 404,如果我将配置更改为以下:
location /admin {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:8090/Login;
它的工作,但 CSS 不,再次因为所有的 css 文件 URL 不在 nginx 配置上!!!!
【问题讨论】:
标签: nginx