一直知道nginx本身能進行負載均衡,但沒有測試過,今天實驗了下,以下是筆記記錄規劃3臺web伺服器,做負載均衡,由於之前已經有一台虛擬機器,因此我現在增加2臺.
依次進行以下操作
1.e盤建立乙個servers目錄初始化vagrant init
2.配置檔案vagrantfile,增加了2臺虛擬機器分別在192.168.33.11,192.168.33.12與之前的192.168.33.10組成3臺集群
3.為新增的2臺伺服器安裝php和一些必要的軟體,為了提高效率,隨意寫了個指令碼2臺機器上執行vagrant.configure(2) do |config|
config.vm.define "web_1" do |web_1|
web_1.vm.box = "centos67"
web_1.vm.network "private_network", ip: "192.168.33.11"
web_1.vm.provider "virtualbox" do |v|
v.memory = "1024"
endend
config.vm.define "web_2" do |web_2|
web_2.vm.box = "centos67"
web_2.vm.network "private_network", ip: "192.168.33.12"
web_2.vm.provider "virtualbox" do |v|
v.memory = "1024"
endend
end
本實驗中web_1和web_2 2臺伺服器其實只用到php-fpm,之前的一台host_1(192.168.33.10)會用到nginx和php-fpmyum install -y gcc vim
su -c 'rpm -uvh '
rpm -uvh
yum install -y nginx
yum install -y php71w-* --skip-broken
groupadd dev
useradd -s /bin/bash -g dev vison
4.配置web_1和web_2的php-fpm 的www.conf配置檔案
主要涉及到的配置是listen 和 listen.allowed_clients
前者表示php-fpm 監聽的ip 和埠,由於要讓host_1的nginx反向**到,所以應該使用區域網ip,而不是預設的127.0.0.1.
配置好後注意過載配置 service php-fpm reload#192.168.33.11的www.conf
listen = 192.168.33.11:9000
listen.allowed_clients = 192.168.33.10
#192.168.33.11的www.conf
listen = 192.168.33.12:9000
listen.allowed_clients = 192.168.33.10
5.配置host_1 的nginx 進行負載均衡
6.同步php檔案#nginx.conf
#配置均衡日誌 可以看到具體**到了哪台機器的fpm
log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time';
access_log /var/log/nginx/$host.access.log upstreamlog;
upstream php-fpm-backend
#test-dev.conf vhost 配置
server_name test.dev;
root /home/vison/www/demaya/webroot;
location ~ \.php$
由於不同的fpm都會找本機的root目錄即之前配置的/home/vison/www/demaya/webroot,所以需在192.168.33.10-12 3臺機器上都有相同的**. 為了方便測試,我這裡故意更改了3臺機器的index.php檔案**.host_1 輸出hello,host_1,web_1輸出hello,web_1依次類推。
瀏覽器訪問test.dev
結果:第一次 hello,host_1
第二次 hello,web_1
第三次 hello,web_2
...依次
說明:nginx已經按照輪流模式**到了host_1 web_1 web_2,檢視host_1的access.log也同樣會發現
多台伺服器**就一定會提公升效能嗎?
筆者用ab在負載均衡之前和之後都測試過,答案卻是否定的
在多伺服器之前,單核cpu 1g記憶體 nginx和php-fpm 都按預設配置rps能達到900+,然而增加了2臺同樣配置的虛擬機器**卻只能達到800+了。
php-fpm 程序數auto的配置會奏效,會自動增加php-fpm數.但是效能提公升效果並不明顯,然而nginx 的auto 並沒奏效,仍然只有乙個.通過手動增加nginx配置,發現rps有所提公升,但效果很不明顯。
運用vmstat檢視分析效能瓶頸時,感覺上是cpu上到了瓶頸,vmstat顯示r挺多說明cpu處理不過來。於是我更改了host_1的cpus 配置改為2.再次ab,結果rps能達到1500左右,差不多翻倍了!
效能問題並不那麼容易解決,需要耐心的排查原因.
nginx php fpm負載均衡和效能測試
一直知道nginx本身能進行負載均衡,但沒有測試過,今天實驗了下,以下是筆記記錄 規劃3臺web伺服器,做負載均衡,由於之前已經有一台虛擬機器,因此我現在增加2臺.依次進行以下操作 1.e盤建立乙個servers目錄初始化vagrant init 2.配置檔案vagrantfile,增加了2臺虛擬機...
nginx 負載均衡 Nginx負載均衡策略
nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...
軟負載均衡和F5負載均衡(硬負載均衡)區別
分割線,以下是原文內容 負載均衡 建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件 網路裝置 和伺服器 的頻寬 增加 吞吐量 加強網路資料處理能力 提高網路的靈活性和可用性。負載均衡,英文名稱為load balance,其意思就是分攤到多個操作單元上進行執行,例如web 伺服器 ftp...