如何解决NGINX - 反向代理问题不重写URLS?我想?
我希望我在这里做的只是不正确的事情。基本上我有 3 个应用程序,我已经为其配置了 NGINX 反向代理。每个似乎都开始加载,但我认为正在发生的是重写有问题。所以我可以在 chrome 网络跟踪中看到每个加载第一个项目 ok 但然后它尝试 example.com/applicationdirx 而不是 example.com/app1/applicationdirx(这会为它尝试加载的每个项目返回 404) 这对所有人都在发生在不同的机器上运行的 3 个应用程序。所以我希望它在某个地方是我的配置。请不要判断我的配置。我花了好几个小时玩它,所以它有点乱。哈哈。我会假设它的 proxy_redirect 但我已经尝试了每种组合(包括默认和关闭都无济于事)。如果我将位置更改为根“/”并相应地更新配置,则应用程序可以正常工作。就在我试图在 /app1/、/app2/ 和 /app3/ 下执行时,它没有。 :(
如有任何帮助,我们将不胜感激。
çmap $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
set $app1 192.168.5.3:443;
set $app2 192.168.5.3:8443;
set $app3 192.168.5.79:8123;
**app1*
location /app1/ {
proxy_pass https://$app1/;
proxy_redirect https://$app1 https://$server_name/app1/;
proxy_cache off;
proxy_store off;
proxy_buffering off;
proxy_http_version 1.1;
proxy_read_timeout 36000s;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
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 Referer "";
client_max_body_size 0;
}
## app2 ##
location /app2/
{
proxy_pass https://$app2/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_redirect https://$app2/ https://$server_name/app2/;
}
## app3##
location /app3/ {
proxy_pass http://$app3/;
proxy_set_header Host $host;
#proxy_redirect http://$app3 https://$server_name/app3;
proxy_redirect http://192.168.5.79:8123/ https://$server_name/app3/;
# proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
#proxy_set_header Connection $connection_upgrade;
}
server_name example.com;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullcapp3in.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com(将#修改为@)