我有一个应用程序位于 nginx 后面,显然无法正常工作。因此,我尝试在本地环境中进行复制。
背景 Web 应用程序运行良好,并返回 /static/index.html 作为默认页面。例如,访问http://本地主机:7777/返回 /static/index.html 并且一切正常。{http://localhost:7777/static/index.html}
问题
当我尝试通过代理访问同一个应用程序时,它不起作用。访问
http://localhost/app
{localhost 是 nginx 中默认服务器的名称} 时,应用程序照常返回 /static/index.html,然后重新路由 tphttp://localhost/static/index.html
并返回 404。
期望情况
即使应用程序位于代理后面,我也应该能够看到该应用程序。http://localhost/static/index.html
URL 应该类似于http://localhost/localhost:7777/static/index.html
nginx.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /app/ {
proxy_pass http://localhost:7777/;
proxy-redirect off;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_buffering off;
client_max_body_size 0;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;
proxy_pass_header P3P;
}
有什么想法可以实现这一点吗?
答案1
如果您根据 nginx.conf 将代理限制到位置 /app/,则 /static/index.html 没有被代理也就不足为奇了。添加一个
proxy_pass http://localhost:7777/;
到位置 / 然后看看会发生什么。