Apache2 中的 Proxyreverse 与 wordpress

Apache2 中的 Proxyreverse 与 wordpress

我已经使用 apach2 虚拟主机在我的服务器上安装并配置了 Wordpress。我使用以下配置创建了一个虚拟主机

<VirtualHost *:80 *:443>

    ServerAdmin [email protected]
    ServerName yourluxuryroad.com
    ServerAlias www.yourluxuryroad.com
    DocumentRoot /var/www/yourluxuryroad
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =www.yourluxuryroad.com [OR]
    RewriteCond %{SERVER_NAME} =yourluxuryroad.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass /node-yrl-book http://localhost:5000
    ProxyPassReverse /node-yrl-book http://localhost:5000

</VirtualHost>

<Directory /var/www/yourluxuryroad/>
    AllowOverride All
</Directory>

从配置中您可以看到,我正在尝试设置 ProxyPass 指令,以将路径上收到的请求重定向/node-yrl-book到端口 5000 上的nodejs服务(使用expressjs),但这不起作用,我没有重定向到该服务,而是得到了 404 页面未找到 wordpress 页面。

如果我发出请求,my_ip/node-yrl-book它会正常工作,并且我被重定向到端口 :5000 的服务

我想我的配置中缺少了一些东西,但我不明白是什么......也许是 wordpress 中有些东西需要更改?

答案1

您将 ProxyPass 指令放置在端口 80 的 VirtualHost 中,该端口会重定向到 HTTPS。

将 ProxyPass 指令放入 HTTPS 的 VirtualHost 中。

答案2

最后我解决了这个问题,我使用 let's encrypt certbot 为我的网站创建了一个 SSL 证书,此脚本在另一个文件中为 https 请求创建了一个新的虚拟主机(称为 /etc/apache2/sites-available/myDomain-le-ssl.conf)该虚拟主机覆盖了我的 proxypass 指令,编辑此虚拟主机也使所有工作正常

相关内容