您好我使用Nginx作为Gunicorn和Apache的反向代理。某些子域名正被重定向到Gunicorn以及Apache的其他所有内容。 此外,Nginx会将所有http请求重写为https请求。
第一个调用通常有效但是每次与Apache-Site的交互都会添加Apache的监听端口,这会破坏我的设置。 非Apache相关的一切工作都很好。
导致此行为的原因是什么?如何解决?它是一些Apache设置还是我的nginx设置错误?
# everything to apache
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8090;
proxy_set_header X-Nginx-Proxy true;
}
我应该只用8090重写每个请求吗?正则表达式会是什么样的?
答案 0 :(得分:1)
如果问题只是源自Apache或Apache托管的应用程序的外部重定向(3xx状态响应),则nginx
能够使用proxy_redirect
指令重写它。您需要研究Location:
响应标头的确切内容,但其中一个可能很接近:
proxy_redirect http://example.com:8090/ /
proxy_redirect https://example.com:8090/ /
有关详细信息,请参阅this document。
如果问题是在实际文档中嵌入了URL(例如JS,CSS和图像),则需要在托管应用程序本身内修复它。