nginx 使用 proxy_pass 讓後台 apache 處理 php 檔案

說句實話,nginx 的優異表現讓我很滿意。但是魚與熊掌不可兼得,在 php 等 cgi 的處理上必需使用 FastCGI 來做才可以,這意味著如果您需要 php 處理後端程式,就無法直接在 nginx 套用,而這一點在 Apache 上就贏了 nginx。

所以,在 nginx 裡我們可以設定若是遇到 php 的程式,可以 by pass 到 apache 去處理,讓 nginx 認真處理靜態檔案,由 apache 處理 php 後端動態程式。

法很簡單,只需要在 server {} 間加入相關設定就可以了。

location ~ \.php$ {
        set $fixed_destination $http_destination;
        if ( $http_destination ~* ^https(.*)$ ) {
                set $fixed_destination http$1;
        }
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Destination $fixed_destination;

        proxy_pass   http://proc.l-penguin.idv.tw:80;
}

設定好之後,重新reload nginx

root # /usr/local/nginx/sbin/nginx -s reload

記得您的後端 apache 程式也要啟用才行。

Comments are closed.

十二月 2019
« 五月    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Google ADs