Корень Apache ProxyPass для NodeJS и / admin для PHP-FPM

Я пытался обрабатывать все запросы через NodeJS, кроме тех, которые отправлялись в каталог / admin через mod_proxy, но безуспешно.

Это конфигурация, которую я придумал, но это не так. работает.

<VirtualHost *:80>
    ServerName domain.com
    DocumentRoot /home/sites/domain.com/

    RewriteEngine on
    ReWriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName domain.com
    DocumentRoot /home/sites/domain.com/

    ProxyRequests on
    ProxyPassMatch ^/(.*)$ http://localhost:3000/
    ProxyPassMatch ^/admin/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/sites/domain.com/php/public/$1 timeout=600
    ProxyTimeout 600

    SSLEngine on
    SSLCertificateFile /home/keys/domain.com.crt
    SSLCertificateKeyFile /home/keys/domain.com.key
</VirtualHost>
0
задан 21 March 2017 в 11:23
1 ответ

При использовании директив ProxyPass порядок следования имеет значение, поэтому вам следует перенести вторую директиву выше первой.

Также, как упоминали в своем комментарии ezra-s, если вы собираетесь передать ее в пункт назначения, то это должно сработать:

ProxyPassMatch ^/admin/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/sites/domain.com/php/public/$1 timeout=600
ProxyPassMatch / http://localhost:3000/
2
ответ дан 4 December 2019 в 13:34

Теги

Похожие вопросы