Nginx本身不自帶PHP處理模塊,因此需要配置反向代理,將php請求交給其他的PHP解析器執行,然后返回結果給Nginx。
目前流行的方式是使用fast-cgi的方式配置PHP處理服務。其優點是比較簡潔,服務器負載輕。但是缺點也是很明顯的:無法查看php處理狀態。
比如有時候網站因為負荷過高,php處理線程已經全部阻塞,就會造成網站無法再響應php服務。使用fastcgi方式,無法查看是哪些腳本處理時間過長,阻塞了php處理線程。
而Apache的有點就在于,可以很好的查看哪些php腳本處理時間過長,阻塞了有效進程數。
下面的方式是使用Apache最為Nginx的php處理后臺:
1、先安裝apache
apt-get install apache
并配置好apache正確運行在8001端口。
2、修改nginx的虛擬主機配置,其他php腳本交由apache解析
location ~ /.php$ {
proxy_pass http://127.0.0.1:8001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 30;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
重啟nginx和apache就好了。
注意,如果要查看php的處理狀態,安裝使用apache的監控模塊就可以了。
新聞熱點
疑難解答