我已经使用 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 指令,编辑此虚拟主机也使所有工作正常