Apache-2.4
Apache ProxyPass root 到 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>
使用
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/