nginx php unix负载,使用nginx配置多个php fastcgi负载均衡
http://hi.baidu.com/heyuejuan/blog/item/189360b5366119c437d3ca5a.html
配置還是非常簡單的,充分體現了的強大與配置的簡單^^下面是大致的服務器結構圖:
應用的最前端是一臺nginx服務器,所有靜態的內容都由nginx來處理,而將所有的
請求都分攤到下游的若干臺運行php fastcgi守護進程的服務器中,這樣可以以一種廉價的方案來實現對系統負載的分攤,擴展系統的負載能力。
三臺php fastcgi服務器的ip地址分別為:
172.16.236.110 , 172.16.236.111, 172.16.236.112
運行php
fastcgi進程時,需要讓php-cgi監聽到服務器的局域網地址(分別如上所示),而不是之前一般都是監聽的本地地址(127.0.0.1)。以
172.16.236.110這臺服務器為例:
/usr/local/php5/bin/php-cgi -b 172.16.236.110:9000
或許你用spawn-fcgi來啟動php-fcgi,那么就是這樣(供參考,其實也就是修改監聽的地址和端口即可):
/usr/local/lighttpd/bin/spawn-fcgi -f /usr/local/php5/bin/php-cgi -a 172.16.236.110 -p 9000
又或許你是用php-fpm來管理php-fcgi,那么你需要修改php-fpm的配置:
vi /usr/local/php5/etc/php-fpm.conf
找到這個配置項(其中的地址可能需要根據你自己環境來調整)
name="listen_address">127.0.0.1:9000>
修改為:
name="listen_address">172.16.236.110:9000>
修改完畢后,重啟你的php-fpm進程。
然后按照上面的步驟,依次修改其他php fastcgi服務器。
php方面的工作暫時就是這些,下面修改nginx。
vi /usr/local/nginx/conf/nginx.conf
在配置文件的http段內增加類似如下的配置:
upstream myfastcgi {
server 172.16.236.110 weight=1;
server 172.16.236.111 weight=1;
server 172.16.236.112 weight=1;
}
我這里三臺php fastcgi服務器的權重是相同的,所以其中的weight值都是1,如果你的php
fastcgi服務器需要分主次,那么可以通過調整其weight值來達到目的。比如以第一臺服務器為主,其他兩臺為輔,則就是這樣:
upstream myfastcgi {
server 172.16.236.110 weight=1;
server 172.16.236.111 weight=2;
server 172.16.236.112 weight=2;
}
然后找到原來nginx關于php fastcgi配置的部分,比如:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index .php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
將其中的fastcgi_pass那一段改為:
fastcgi_pass myfastcgi;
其中的myfastcgi也就是上面剛剛配置的php fastcgi均衡器的名字了。
完了以后,重啟nginx即可。
簡單吧,就通過這么幾個簡單的配置,就可以實現一個經濟高效的nginx、多php-fcgi的負載均衡解決方案了。當然了,這樣的方案運用到實際項目中
還需要進行一些細化的配置,主要是php方面還需要進一步配置,我會在接下來的博客中記錄現在項目的一些心得。
總結
以上是生活随笔為你收集整理的nginx php unix负载,使用nginx配置多个php fastcgi负载均衡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正则截取指定字符串 php,php截取指
- 下一篇: php查询每个小时的数据,php – M