Apache ProxyPass 根目录到 NodeJS 和 /admin 到 PHP-FPM

Apache ProxyPass 根目录到 NodeJS 和 /admin 到 PHP-FPM

我一直尝试通过 NodeJS 处理所有请求,除了通过 mod_proxy 进入 /admin 目录的请求,但没有成功。

这是我想出的配置,但它不起作用。

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

答案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/

相关内容