Nginx 代理背后的 Apache 重写规则

Nginx 代理背后的 Apache 重写规则

我在 Apache 网络服务器 (:8080) 前运行 nginx (:80)

Nginx 配置(片段):

location / {
    proxy_pass        http://www.domain.tld:8080;
    proxy_set_header  X-Real-IP  $remote_addr;

如果我设置 localhost 而不是 www.domain.tld,我的浏览器将被重定向到http://本地主机:8080

Apache 重写规则:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://%{HTTP_HOST}/$1/ [L,R=301]

RewriteCond %{REQUEST_URI} !v2/
RewriteRule ^(.*)$ v1/$1 [L]

到目前为止,一切都很好。

然而,每个链接(使用相对路径)都显示为http://www.domain.tld:8080/页而不是停留在端口 80 上。

有没有办法通过重写规则解决这个问题?我不想使用绝对路径。

谢谢

答案1

通过将这个添加到 nginx 配置来解决:

proxy_set_header Host $host; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

相关内容