Proxyreverse w Apache2 z wordpress

Oct 04 2020

Zainstalowałem i skonfigurowałem Wordpress na moim serwerze używając również wirtualnych hostów apach2. Zrobiłem virtualhost z tą konfiguracją

<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>


Jak widać z konfiguracji próbuję ustawić dyrektywę ProxyPass na przekierowanie żądań otrzymanych na ścieżce /node-yrl-bookdo nodejsusługi (wykonanej przy użyciu expressjs) na porcie 5000, ale to nie działa, zamiast uzyskać przekierowanie do tej usługi, którą otrzymuję Strona 404 nie została znaleziona w wordpress.

Jeśli my_ip/node-yrl-bookzamiast tego wyślę żądanie pod adresem, to działa poprawnie i jestem przekierowywany do usługi na porcie: 5000

Przypuszczam, że brakuje mi czegoś w mojej konfiguracji, ale nie rozumiem co .. Może jest coś w wordpressie, co należy zmienić?

Odpowiedzi

jnovack Oct 04 2020 at 17:37

Za dużo się dzieje.

ProxyPass-lub- DocumentRoot, nie oba.

Możesz udostępniać stronę z apache (używając DocumentRoot) lub możesz udostępniać stronę z nodejs (używając ProxyPass).

Mat.C Oct 04 2020 at 20:11

W końcu rozwiązałem ten problem, zrobiłem certyfikat SSL dla mojej witryny za pomocą zaszyfrujmy certbot, ten skrypt utworzył nowy virtualhost w innym pliku dla żądań https (o nazwie /etc/apache2/sites-available/myDomain-le-ssl.conf) Ten virtualhost przesłonił moją dyrektywę proxypass, edycja również tego virtualhost sprawiła, że ​​wszystko działało