我有一个 Server-a,其中仅包含一个 Nginx 和一个正在执行的节点应用程序。
但是,我想从该服务器提供 Node 应用程序,该服务器也提供 Angular 应用程序。
但是当我导航到服务器-a/blog,我想对不同的服务器(Server-b)创建一个反向代理(内部代理),其中包含一个 Wordpress 设置,也带有 Nginx。
因此,我总是导航到服务器-a/blog,为内容服务服务器-b
我已使其部分地通过以下配置工作:
proxy_buffering on;
proxy_buffer_size 1k;
proxy_buffers 24 4k;
proxy_busy_buffers_size 8k;
proxy_max_temp_file_size 2048m;
proxy_temp_file_write_size 32k;
location /blog/en/ {
try_files $uri @proxy;
}
location @proxy {
proxy_redirect off;
proxy_set_header X-Forwarded-Host "$host";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://server-b;
}
但实际情况是:如果我导航到服务器-a/blog/wp-admin,我立即被重定向到服务器-a/wp-admin。
Wordpress 安装上的所有相关链接必须与服务器 URL 相对应。
这是我在 Wordpress DB 设置上的设置:
+-----------+-------------+-----------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+-----------------------+----------+
| 1 | siteurl | http://server-a/blog/ | yes |
| 2 | home | http://server-a/blog/ | yes |
+-----------+-------------+-----------------------+----------+
答案1
这几乎肯定是由于相对 URL 的类型不同造成的。
根据http://www.webreference.com/html/tutorial2/3.html
相对 URL 中名为 ..(两个句点)的目录表示父目录,本质上是剥离了 Base URI 中前一个斜杠之前的所有内容。请注意,这仅在路径名内部有意义,因此您不能使用此符号来向上移动到根目录以上。
名为 . (一个句点)的目录指的是当前目录。
以 /(斜杠)开头的相对 URL 始终会替换基本 URL 的整个路径名。
以 //(两个斜杠)开头的相对 URL 始终会替换从主机名开始的所有内容。
因此,如您所见,执行“/wp-admin”的相对 URL 将替换整个基础。您希望将其替换为“./wp-admin”,这样它就不会重写整个内容。
至于实际改变它,我不确定,但我怀疑你需要在 wordpress 端进行改变它。