1. 程式人生 > >使用nginx配置多個php-fastcgi負載均衡

使用nginx配置多個php-fastcgi負載均衡

配置還是非常簡單的,充分體現了nginx的強大與配置的簡單。

應用的最前端是一臺nginx伺服器,所有靜態的內容都由nginx來處理,而將所有php的 請求都分攤到下游的若干臺

執行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的配置:

vim  /usr/local/php5/etc/php-fpm.conf

找到這個配置項(其中的地址可能需要根據你自己環境來調整)


<value< span="" style="word-wrap: break-word;"> name="listen_address">127.0.0.1:9000>
修改為:
<value< span="" style="word-wrap: break-word;"> name="listen_address">172.16.236.110:9000>
修改完畢後,重啟你的php-fpm程序。

然後按照上面的步驟,依次修改其他php fastcgi伺服器。

php方面的工作暫時就是這些,下面修改nginx。

vim  /usr/local/nginx/conf/nginx.conf

在配置檔案的http段內增加類似如下的配置:

1
2
3
4
5
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值來達到目的。比如以第一臺伺服器為主,其他兩臺為輔,則就是這樣:

1
2
3
4
5
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配置的部分,比如:

1
2
3
4
5
6
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index 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-fastcgi負載均衡

配置還是非常簡單的,充分體現了nginx的強大與配置的簡單。 應用的最前端是一臺nginx伺服器,所有靜態的內容都由nginx來處理,而將所有php的 請求都分攤到下游的若干臺 執行ph

nginx 配置域名 及 tomcat 負載均衡

上回建立了 test.tomcat.com —— nginx —— 8080 8081 缺點在於 1 nginx負載均衡部署的 127.0.0.1:8080 和 127.0.0.1:8081 訪問各自的webapp目錄,給war包的部署帶來麻煩,需要部署兩臺tomcat 2

nginx反向代理cas server之1:cas server負載均衡配置以及ssl配置

系統環境採用centOS7 由於cas server不支援session持久化方式的共享,所以請用其他方式代替,例如:組播複製。 nginx反向代理完整配置(兩個網站例項) user nobody nobody; worker_processes 2; #error

nginx實現對映域名和負載均衡

當前我有2個網站,都需要部署上去,但是無奈,雲服務只有一臺,在買一臺的話就又太費錢,所以利用了nginx的多域名配置,從而實現利用一個 ip 訪問不同的域名,也節省了開支   配置方法也相對比較簡單,在nginx.conf配置檔案中 配置多個server 即可 user nob

nginx+docker同一伺服器上部署docker實現負載均衡

在提到負載均衡的時候,大多數人都是想著幾臺伺服器甚至幾十臺伺服器組成一個群組 也就是橫向拓展伺服器來實現負載均衡吧 但是還有一種情況是縱向拓展 也就是當你的專案在一臺伺服器上佔用的資源很少,其實是可以在同一臺伺服器上部署多個專案來實現負載均衡的 這裡利用nginx+dock

Nginx學習總結(10)——Nginx前後端分離將請求轉發到Tomcat,負載均衡反向代理

一、談談“渲染” 相信好多人都挺聽過“渲染”這個詞,但不清楚它是什麼意思?前端開發以為這是後端的活兒,後端開發以為是前端的事兒,推著推著就不了了之。其實渲染很簡單,不說概念,直接舉例: 1、 後端渲染:以JSP為例,可以分成三步 a、編寫標籤或Java程式碼(可以稱之為模板

Docker+Nginx+tomcat實現一個伺服器上tomcat的負載均衡

環境:Vmware12,Ubuntu14.04,Docker1.11.1,Nginx1.4.6,在Ubuntu虛擬機器上安裝的docker. 1.拉取tomcat映象: docker pull tomcat2.docker啟動tomcat docker run -i

nginx 配置主機

安裝 code -a reload res list onf 內容 efault 我現在想配置 兩個站點,通過域名來區分訪問不同的網站目錄 比如有個域名 baidu.com 第二個域名 google.com,我有兩個網站目錄, /opt/web/baidu;

linux nginx配置網站

vhost host 編輯 dir OS nginx 文件夾 CA nginx配置 1.把網站配置在hom目錄下,需要建立wwwroot目錄 1.在nginx.conf 增加inlcude代碼,然後創建一個vhost,最後配置個xxx.com.conf //編輯n

nginx配置server

connect _for ups oca redirect time real 127.0.0.1 地址 http{}容器裏面寫兩個不一樣的server監聽不一樣的地址即可server {listen 8992;server_name localhost;loc

最簡單的uwsgi+nginx配置django站點

1. nginx.conf   http{     server     {       listen       80;       server_name

nginx配置前端專案

最近一臺伺服器要配置多個前端專案,當然前後端分離就需要nginx來配置了。 單個專案還好說,如下 修改nginx的nginx.conf配置檔案 #user nobody; worker_processes 1; #error_log logs/error.log; #

Nginx 配置服務共用80埠

使用場景:兩個不同埠的微服務,當我們測試的時候,需要放到同一臺伺服器上,共享80埠訪問 可以在nginx.conf中做如下配置: server {                   liste

Nginx配置專案放在不同的tomcat中,共享同一個埠

一、準備兩個tomcat以及Nginx安裝包 1.1分別命名為tomcat1,tomcat2。 1.2在兩個tomcat的webapps下面分別新建個專案 server1,server2. 二、配置Ngnix的配置檔案 http { include

Nginx配置HTTPS域名的方法

參考URL:https://www.jb51.net/article/117697.htm?12345678910111213141516171819202122232425262728293031323334353637383940...server {listen   

nginx配置:反向代理和負載均衡

  參考部落格:https ://blog.csdn.net/xuanjiewu/article/details/79458266 一:反向代理與正向代理       正向代理:直接獲取目標伺服器資料(瀏覽器輸入a.com直接獲取甲網頁) &n

詳解nginx 配置tomcat共用80埠

場景:專案1放在tomcat1中,專案2放在tomcat2中,兩個tomcat放在同一臺伺服器上,需要共享80埠訪問注意:這裡和叢集部署是不同的,叢集部署是一個專案放在多個tomcat中。這裡通過nginx做反向代理 修改conf/nginx.conf中的server如下:server {        li

mac 下 nginx 配置虛擬主機

我是通過homebrew 安裝nginx 的,所以安裝目錄是預設的,之前多個server都是放在預設安裝目錄下的nginx.conf裡的,但是這樣不太好,就是會導致nginx.conf 越來越長,而且容易出現一些大括號缺失啥的類似的語法錯誤。看了下老大配的虛擬目錄感覺不錯,自

tomcat服務和nginx負載均衡配置 linux 配置tomcat

1、nginx服務安裝及配置,詳見:linux 配置之安裝nginx 2、多個tomcat服務安裝及配置,詳見:linux 配置多個tomcat 3、關鍵配置nginx.conf檔案 http { include /etc/nginx/mime.types;

centos7系統下配置nginx php-fpm負載均衡

  三臺Centos7伺服器 主:192.168.199.174 從:192.168.199.170 從:192.168.199.191 均全新最小化安裝,都關閉了防火牆和SELINUX 第一步 先在 主伺服器 上安裝Nginx,可以在改配置前直接開啟服務訪問看看有沒有