使用 Nginx 反向代理到使用 nginx 托管的 wordpress 应用程序

使用 Nginx 反向代理到使用 nginx 托管的 wordpress 应用程序

我正在尝试使用 nginx 作为反向代理(服务器 A)到我的 WordPress 服务器(服务器 B) 使用 nginx 托管。我尝试以子目录格式设置我的 url,例如example.com/blog

它确实能工作,但也存在一些问题。

  1. 服务器 A具有 LetsEncrypt SSL 证书,因此它强制https在所有路由上使用。这是一个问题,因为我的 wordpress 应用程序正在加载 .js 和 .css 文件http

  2. 登录成功后,不会重定向到example.com/blog/wp-admin,它去example.com/wp-admin

我的服务器 Anginx conf 文件中适当的位置块,

location /blog {
    rewrite ^/blog/(.*)$ /$1 break;

    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://ip-address-for-server-b;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

我的服务器 Bnginx 配置文件

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name localhost;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }

    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
         expires max;
         log_not_found off;
    }

    location / {
        # try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

另外在我的wp-config.php,我添加了这些行

define( 'WP_SITEURL', 'https://example.com/blog' );
define( 'WP_HOME', 'https://example.com/blog' );

相关内容