Я пытался обрабатывать все запросы через 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>
При использовании директив 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/