Я установил и настроил Wordpress на своем сервере, используя также виртуальные хосты apach2. Я создал виртуальный хост с этой конфигурацией
<VirtualHost *:80 *:443>
ServerAdmin yourluxuryroad@gmail.com
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
, на ] nodejs
(созданный с использованием expressjs
) на порту 5000, но он не работает, вместо перенаправления на этот сервис я получаю страницу 404 Page not found wordpress.
Если я сделаю запрос на my_ip / node-yrl-book
вместо этого он работает правильно, и я перенаправлен на службу на порт: 5000
Я полагаю, что мне что-то не хватает в моей конфигурации, но я не понимая что .. Может быть, что-то в wordpress нужно изменить?
Вы разместили свои директивы ProxyPass в VirtualHost для порта 80, который перенаправляет на HTTPS.
Поместите директивы ProxyPass в VirtualHost для HTTPS.
Наконец, я решил эту проблему, я сделал сертификат SSL для своего веб-сайта, используя Let's encrypt certbot. Этот сценарий создал новый виртуальный хост в другом файле для запросов https (называемых / etc / apache2 / sites- available / myDomain-le-ssl.conf) Этот виртуальный хост переопределял мою директиву proxypass, редактирование этого виртуального хоста сделало всю работу