成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nginx負載均衡器排障實錄

原創
網絡 網絡優化 網絡運維
這段時間,公司的web架構要升級,考慮用負載均衡;初期準備采用LVS+Keepalived,我比較有自信,剛剛在一個客戶的局域網里實現了這個,所以直接把腳本移過來了;然而,杯具開始了,發現LVS怎么也實現不了后端二臺web的轉發。

【51CTO.com獨家特稿】這段時間,公司的web架構要升級,考慮用負載均衡;初期準備采用LVS+Keepalived,我比較有自信,剛剛在一個客戶的局域網里實現了這個,所以直接把腳本移過來了;然而,杯具開始了,發現LVS怎么也實現不了后端二臺web的轉發。

后來關于此問題我請教了田逸兄,他懷疑我們的網絡環境太復雜了,因為牽涉到內外網的問題,我們的每臺機器上有5條靜態路由,2個gateway,直接導致了LVS的不成功;我們試圖跟network Engeneer溝通,結果是網絡不能做一絲一毫改動,所以白白測試了二天。

后來改用了Nginx負載均衡器,5分鐘就解決了問題,真真切切的體會到了Nginx對網絡的依賴較小,理論上只要ping得通,網頁訪問正常,nginx就能連得通。為了以防萬一,我采用的是Nginx+keepalived高可用架構。

在這里,我不是神話Nginx,只是說這是一種解決問題的方法而矣,LVS也有適用的場合,穩定性方面是眾所周知的,所以只要提到web層的負載均衡,我就想到LVS,但LVS不僅僅是;如果網絡環境比較復雜的朋友們,不妨換種思路解決問題。

當然用了Nginx后,大問題暫時沒有;小問題就都來了,首先是SSL,這個目前支持得算是比較好的,在負載均衡器上開啟ssl功能,監聽443端口,將證書放在Nginx代理上,非后面的web服務器,輕構解決掉問題,詳細見以下http.conf配置文件

  1. server  
  2.     {  
  3.         listen  443;  
  4.         server_name www.cn7788.com;  
  5.  
  6.         ssl on;  
  7.         ssl_certificate /usr/local/nginx/keys/www.cn7788.com.crt;  
  8.         ssl_certificate_key /usr/local/nginx/keys/www.cn7788.com.key;         
  9.  
  10.         ssl_protocols  SSLv3 TLSv1;  
  11.         ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP;  
  12.         } 

但問題又來了,這么有個問題,跑在后方 apache 上的應用獲取到的IP都是Nginx所在服務器的IP ,或者是本機 127.0.0.1 。最明顯就是查看 apache 的訪問日志。就會見到來來去去都是內網的IP;雖然可以通過Nginx日志來判斷客戶的client,但有些考慮不周全的應用,例如 Tattertools (一個博客程序) 就會犯誤,后臺的訪問日志死活顯示訪客數 1,ip來自 127.0.0.1。這時候就要想辦法來處理了。你可以通過修改 nginx proxy 的參數令后端應用獲取到Nginx 發來的請求報文獲取到外網的IP。

  1. proxy_set_header        Host $host;  
  2. proxy_set_header        X-Real-IP $remote_addr;  
  3. proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; 

這僅僅只是讓Nginx獲到到外網IP,Apache未必買帳呢,即Aapche端也需要設置,搜尋了一下,發現了apache這一個來自第三方的mod 配合Nginx proxy 使用。

說明:http://stderr.net/apache/rpaf/

下載:http://stderr.net/apache/rpaf/download/

最新版本是 mod_rpaf-0.6.tar.gz

安裝也相當簡單。

# tar zxvf mod_rpaf-0.6.tar.gz 下載后解壓# cd mod_rpaf-0.6

Apache 的目錄按自己的環境修改,并選擇相應的安裝方式:

#/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c  

完成后會在 http.conf  的 LoadModule 區域為你多加了一行。

LoadModule mod_rpaf-2.0.so_module modules/mod_rpaf-2.0.so 經 apache 2.2.6 的實驗,使用這一行啟動 apache 的時候會報錯的。

所以改為:

LoadModule rpaf_module        modules/mod_rpaf-2.0.so

并在下方添加

  1. RPAFenable On  
  2. RPAFsethostname On  
  3. RPAFproxy_ips 127.0.0.1 192.168.1.101 192.168.102 

#填寫Nginx所在的內網IP,Nginx的內網地址必寫,不然一樣失敗的,這問題花了幾個小時測試;有幾個代理服務器的IP就寫幾個代理服務器的IP

RPAFheader X-Forwarded-For

保存退出后重啟apache,再看看 apache 的日志內容?不再是來來去去的那幾個IP了吧,呵呵。

另外這里來個小插曲,我做的某個小項目本為是基于Nginx的1+3架構,突然要加一臺機器是windows2003系統,專門作存放圖片及 PDF等,但項目的要求是能在nginx后的三臺web上有顯示圖片及pdf下載的需求;當時迷糊了下,因為程序是用到的Zend Framwork,所以一直用正則作跳轉;后來才想明白,IE程序是先在nginx負載均衡器上提申請,所以nginx.conf是做分發而非正則跳轉,此時最前端的nginx,既是負載勻衡器也是反向代理,明白這個就好做多了,語法如下;另外注意location /StockInfo與location ~^/StockInfo的差異性,Nginx默認的是正則優先的,by the way,proxy_pass支持直接寫IP的方式。

  1. upstream mysrv {  
  2.     ip_hash;  
  3.     server 192.168.110.62;  
  4.     server 192.168.110.63;  
  5.     }  
  6.  
  7. upstream myjpg {  
  8.     server 192.168.110.3:88;  
  9.     }  
  10.  
  11.  
  12.     server  
  13.     {  
  14.         listen 80;  
  15.         server_name web.tfzq.com;  
  16.         proxy_redirect off;  
  17.  
  18.         location ~ ^/StockInfo{  
  19.         proxy_pass http://myjpg;  

再說下Nginx下的并發,這是個容易讓人誤會的概念。現在Nginx的文章滿天飛,好像只要一涉及到web并發,就非將Apache換成nginx不可,其實完全沒這必要;在內存足夠的情況,Apache的抗并發能力也是很強的。玩了幾年nginx了,遇到的最大并發也是以前在北京維護的CDN之廣告網站,大約在3000-5000之間(這種情況建議用Nginx),一般的資訊類金融網站也就100多,電子商務網站1100左右,web層的并發壓力并沒有想象中的大;相反,我感覺文件和數據層的壓力越來越大,單個NFS服務器越來越難受了,所以我后期準備布署moosefs;而mysql數據庫我一般用的是主從復制,壓力也不小,目前只是從二方面來解決此問題:一、用公司最好的服務器來作數據庫服務器;二、盡可能的優化,如果壓力持續增長的話,后期我考慮從架構級方面優化了。對于一個網站而言,建議多從架構極的觀念來看問題和解決問題。

今天一直測試網站的響應時間是用Linux/unix下工具httping,今天同事找了個專業網站給我,發現很好用,特的拿出來與大家共享http://tools.pingdom.com,可以測試個幾十次然后取平均值,這樣得出的結果較為精準;系統運維工作本來就是一個細膩活,有時短短幾行代碼,說不定就要調試幾天;而有時維護的服務器日志,經常是十幾萬行,看得人心花繚亂...痛并快樂著,這也是算是目前工作的心態吧。

【51CTO.com獨家特稿,非經授權謝絕轉載,合作媒體轉載請注明原文出處及作者!】

責任編輯:林琳 來源: 51CTO.com
相關推薦

2010-05-04 13:32:37

nginx負載均衡器

2010-03-24 10:35:02

Nginx負載均衡器

2010-05-06 10:14:31

負載均衡器

2010-05-05 19:10:23

Nginx負載均衡器

2024-02-22 10:11:00

負載均衡器反向代理

2023-02-13 16:39:45

Kubernetes容器負載均衡器

2010-05-04 13:38:25

nginx負載均衡器

2017-05-19 14:45:01

OVN負載均衡器路由器

2022-07-14 08:53:48

MetalLBkubernetes

2023-03-30 13:32:51

負載均衡器HDFS

2010-04-22 10:46:40

Lvs負載均衡故障負載均衡器

2010-04-20 10:46:59

什么是負載均衡器

2010-05-10 14:13:26

2010-05-10 18:22:51

負載均衡器

2024-06-18 08:14:21

2024-01-08 18:01:36

NGINX負載均衡器

2010-04-22 10:09:28

負載均衡器

2010-04-26 15:04:08

負載均衡器

2010-05-10 14:05:31

負載均衡器

2011-08-24 13:45:49

HAProxy負載均衡負載均衡器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷色国产偷v国产偷v小说 | 亚洲欧美国产一区二区三区 | 狠狠热视频 | 亚洲精品性视频 | 国产一区二区三区免费 | 久久精品国产一区二区电影 | 日本高清aⅴ毛片免费 | 成人国产精品色哟哟 | 欧美一区二区三区在线看 | 伊人在线 | 成人免费视频 | 欧美美女爱爱视频 | 日本免费一区二区三区四区 | 拍拍无遮挡人做人爱视频免费观看 | 亚洲一区二区在线 | 欧美成人一区二区三区 | 男女视频在线观看 | 国产精品国产三级国产aⅴ中文 | 在线精品一区二区三区 | 一起操网站 | 国产精品福利网 | 一区二区日韩精品 | 欧美一区二区 | 亚洲在线一区二区 | 亚洲一区二区三区在线播放 | 午夜电影福利 | 国产一区二区三区四区区 | 伊人二区| 欧美综合在线视频 | 亚洲精品久久久久久久久久吃药 | 久久久久久亚洲精品不卡 | 精品99爱视频在线观看 | 亚洲一区二区三区 | 999在线精品 | 香蕉视频在线播放 | 秋霞电影一区二区三区 | 久久精品国产精品青草 | 欧美日韩亚洲在线 | 欧美精品一区二区三区在线 | 欧美黑人狂野猛交老妇 | 国产偷录视频叫床高潮对白 |