Proxyreverse in Apache2 con wordpress

Oct 04 2020

Ho installato e configurato Wordpress sul mio server utilizzando anche apach2 virtualhost. Ho creato un virtualhost con questa configurazione

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


Come puoi vedere dalla configurazione, sto cercando di impostare la direttiva ProxyPass per reindirizzare le richieste ricevute sul percorso /node-yrl-bookdi un nodejsservizio (effettuato utilizzando expressjs) sulla porta 5000 ma questo non funziona, invece di ottenere un reindirizzamento a quel servizio ottengo la pagina 404 non trovata pagina wordpress.

Se faccio una richiesta a my_ip/node-yrl-bookinvece funziona correttamente e vengo reindirizzato al servizio alla porta: 5000

Suppongo che mi manchi qualcosa nella mia configurazione ma non capisco cosa .. Forse c'è qualcosa in wordpress che deve essere cambiato?

Risposte

jnovack Oct 04 2020 at 17:37

Hai troppe cose da fare.

ProxyPass-oppure- DocumentRoot, non entrambi.

Puoi servire la pagina da apache (usando DocumentRoot), oppure puoi servire la pagina da nodejs (usando ProxyPass).

Mat.C Oct 04 2020 at 20:11

Finalmente ho risolto questo, ho creato un certificato SSL per il mio sito web usando Let's encrypt certbot, Questo script ha creato un nuovo virtualhost in un altro file per le richieste https (chiamato /etc/apache2/sites-available/myDomain-le-ssl.conf) Quel virtualhost stava sovrascrivendo la mia direttiva proxypass, la modifica anche di questo virtualhost ha fatto funzionare tutto