我這里作為演示,只啟用兩個php-fpm實例,把php-fpm分為兩部分,每部分各聽一個端口或socket,這樣就減少了lock,依然保持400個php-fpm進程,當然還有2個主進程,每個實例啟用200個,采用nginx的upstream負載均衡,輪詢每個socket來處理請求。 實驗環境:php5.3系列+php-fpm 具體操作: 1、第一步: 2、第二步 cp /etc/init.d/php-fpm /etc/init.d/php-fpm2 vi /etc/init.d/php-fpm2 修改 prefix=/usr/local/phpexec_prefix=${prefix}php_fpm_BIN=${exec_prefix}/sbin/php-fpmphp_fpm_CONF=${prefix}/etc/php-fpm2.confphp_fpm_PID=${prefix}/var/run/php-fpm2.pid 3、第三步 這個根據情況。 有的啟動腳本,啟動/etc/init.d/php-fpm2 可能會報錯,可以再復制一個 /sbin/php-fpm 為 /sbin/php-fpm2,但是對應配置文件也要調整下。 或者采用這樣方法,寫到 /etc/init.d/php-fpm 里面: #/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.1.conf#/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.2.conf ===================================================== 好了,接下來搞nginx的配置文件 編輯nginx.conf 主配置文件,在http段哦 upstream backend{ server unix:/tmp/php-cgi.sock; server unix:/tmp/php-cgi2.sock; } 然后; 再重啟下nginx。另外值得一題的是:高并發時使用tcp端口的方式比socket方式相對穩定一點,但是使用端口的方式,處理的效率確實比socket效率低了那么一點。 |
|
來自: 昵稱11935121 > 《未命名》