Nginx - 反向代理到远程 Worpress 设置

Nginx - 反向代理到远程 Worpress 设置

我有一个 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 端进行改变它。

相关内容