版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、使用Nginx輕松實(shí)現(xiàn)開(kāi)源負(fù)載均衡,張宴 (),2008.9.20 北京,個(gè)人簡(jiǎn)介,張宴,曾在新浪等公司任系統(tǒng)工程師、系統(tǒng)架構(gòu)師。工作內(nèi)容主要涉及:服務(wù)器系統(tǒng)架構(gòu)設(shè)計(jì)與部署、系統(tǒng)運(yùn)維與調(diào)優(yōu)、網(wǎng)絡(luò)故障解決、網(wǎng)站后端以及接口類(lèi)PHP程序開(kāi)發(fā)、Unix開(kāi)源軟件二次開(kāi)發(fā)、服務(wù)器監(jiān)控系統(tǒng)開(kāi)發(fā)等。具有CDN部署,跨IDC的數(shù)據(jù)傳輸,電信網(wǎng)通南北互通,以及門(mén)戶(hù)類(lèi)FLV視頻分享網(wǎng)站新浪播客架構(gòu)設(shè)計(jì)經(jīng)驗(yàn)。,什么是Nginx?,Nginx (“engine x”) 是俄羅斯人Igor Sysoev(塞索耶夫)編寫(xiě)的一款高性能的 HTTP 和反向代理服務(wù)器。 Nginx 已經(jīng)在俄羅斯最大的門(mén)戶(hù)網(wǎng)站 Rambler
2、Media(www.rambler.ru)上運(yùn)行了3年時(shí)間,同時(shí)俄羅斯超過(guò)20%的虛擬主機(jī)平臺(tái)采用Nginx作為反向代理服務(wù)器。 在國(guó)內(nèi),已經(jīng)有 新浪博客、新浪播客、網(wǎng)易新聞、六間房、Discuz!、水木社區(qū)、豆瓣、YUPOO、海內(nèi)、迅雷在線(xiàn) 等多家網(wǎng)站使用 Nginx 作為Web服務(wù)器或反向代理服務(wù)器。,使用Nginx做七層負(fù)載均衡的理由,1、高并發(fā)連接:官方測(cè)試能夠支撐5萬(wàn)并發(fā)連接,在實(shí)際生產(chǎn)環(huán)境中跑到23萬(wàn)并發(fā)連接數(shù)。 2、內(nèi)存消耗少:在3萬(wàn)并發(fā)連接下,開(kāi)啟的10個(gè)Nginx 進(jìn)程才消耗150M內(nèi)存(15M*10=150M)。 3、配置文件非常簡(jiǎn)單:風(fēng)格跟程序一樣通俗易懂。 4、成本低廉
3、:Nginx為開(kāi)源軟件,可以免費(fèi)使用。而購(gòu)買(mǎi)F5 BIG-IP、NetScaler等硬件負(fù)載均衡交換機(jī)則需要十多萬(wàn)至幾十萬(wàn)人民幣。,使用Nginx做七層負(fù)載均衡的理由,5、支持Rewrite重寫(xiě)規(guī)則:能夠根據(jù)域名、URL的不同,將 HTTP 請(qǐng)求分到不同的后端服務(wù)器群組。 6、內(nèi)置的健康檢查功能:如果 Nginx Proxy 后端的某臺(tái) Web 服務(wù)器宕機(jī)了,不會(huì)影響前端訪(fǎng)問(wèn)。 7、節(jié)省帶寬:支持 GZIP 壓縮,可以添加瀏覽器本地緩存的 Header 頭。 8、穩(wěn)定性高:用于反向代理,宕機(jī)的概率微乎其微。,Nginx 負(fù)載均衡的典型應(yīng)用,硬件、軟件七層負(fù)載均衡對(duì)比: NetScaler 與
4、Nginx,硬件、軟件七層負(fù)載均衡對(duì)比: NetScaler 與 Nginx,五分鐘搞定 Nginx 負(fù)載均衡,編譯安裝Nginx,1、創(chuàng)建供Nginx使用的組和帳號(hào): /usr/sbin/groupadd www -g 48 /usr/sbin/useradd -u 48 -g www www 2、編譯安裝rewrite模塊支持包 wget ftp:/ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz tar zxvf pcre-7.7.tar.gz cd pcre-7.7/ ./configure make wor
5、ker_processes 8; error_log /usr/local/nginx/logs/nginx_error.log crit; pid /usr/local/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; events use epoll; worker_connections 51200; ,創(chuàng)建nginx.conf配置文件(2),http include mime.types; default_type application/octet-stream; #charset gb2312; server_names_hash_
6、bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on;,創(chuàng)建nginx.conf配置文件(3),#gzip on; #gzip_min_length 1k; #gzip_buffers 4 16k; #gzip_http_version 1.0; #gzip_comp_level 2; #gzip_types text/plain application/
7、x-javascript text/css application/xml; #gzip_vary on;,創(chuàng)建nginx.conf配置文件(4),upstream server 0:80; server 1:80; server 2:80; server 3:81; upstream server 0:80 weight=3; server 1:80; server 2:80; ,創(chuàng)建nginx.conf配置文件(5),server lis
8、ten 80; server_name *; proxy_redirect off; #后端的Web服務(wù)器可以通過(guò)X-Forwarded-For獲取用戶(hù)真實(shí)IP proxy_set_header X-Forwarded-For $remote_addr; if ($request_uri * .*.(js|css|gif|jpg|jpeg|png|bmp|swf)$) proxy_pass ; if ($request_uri * /view/(.*)$) proxy_pass ; proxy_pass ;,創(chuàng)建nginx.conf配置文件(6),#定義日志格式 log_format acce
9、ss $remote_addr - $remote_user $time_local $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for; #打日志 access_log /usr/local/nginx/logs/access.log access;,創(chuàng)建nginx.conf配置文件(7),#允許客戶(hù)端請(qǐng)求的最大的單個(gè)文件字節(jié)數(shù) client_max_body_size 10m; #緩沖區(qū)代理緩沖用戶(hù)端請(qǐng)求的最大字節(jié)數(shù) 可以理解為先保存到本地再傳給用戶(hù) client_bo
10、dy_buffer_size 128k; #跟后端服務(wù)器連接的超時(shí)時(shí)間_發(fā)起握手等候響應(yīng)超時(shí)時(shí)間 proxy_connect_timeout 600; #連接成功后_等候后端服務(wù)器響應(yīng)時(shí)間_其實(shí)已經(jīng)進(jìn)入后端的排隊(duì)之中等候處理 proxy_read_timeout 600; #后端服務(wù)器數(shù)據(jù)回傳時(shí)間_就是在規(guī)定時(shí)間之內(nèi)后端服務(wù)器必須傳完所有的數(shù)據(jù) proxy_send_timeout 600;,創(chuàng)建nginx.conf配置文件(8),#代理請(qǐng)求緩存區(qū)_這個(gè)緩存區(qū)間會(huì)保存用戶(hù)的頭信息以供Nginx進(jìn)行規(guī)則處理_一般只要能保存下頭信息即可 proxy_buffer_size 8k; #同上 告訴Ng
11、inx保存單個(gè)用的幾個(gè)Buffer 最大用多大空間 proxy_buffers 4 32k; #如果系統(tǒng)很忙的時(shí)候可以申請(qǐng)更大的proxy_buffers 官方推薦*2 proxy_busy_buffers_size 64k; #proxy緩存臨時(shí)文件的大小 proxy_temp_file_write_size 64k; 配置文件編寫(xiě)完畢,啟動(dòng)Nginx,/usr/local/nginx/sbin/nginx t 如果屏幕顯示以下兩行信息,說(shuō)明配置文件正確: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
12、 the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully 那么,則可以啟動(dòng)Nginx服務(wù): ulimit -SHn 51200 /usr/local/nginx/sbin/nginx,不中斷服務(wù)平滑修改Nginx配置,、修改/usr/local/nginx/conf/nginx.conf配置文件后,請(qǐng)執(zhí)行以下命令檢查配置文件是否正確: /usr/local/nginx/sbin/nginx -t 如果屏幕顯示以下兩行信息,說(shuō)明配置文件正確: the configuration file /u
13、sr/local/nginx/conf/nginx.conf syntax is ok the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully 、這時(shí),輸入以下命令查看Nginx主進(jìn)程號(hào): ps -ef | grep nginx: master process | grep -v grep | awk -F print $2 屏幕顯示的即為Nginx主進(jìn)程號(hào),例如: 6302 這時(shí),執(zhí)行以下命令即可使修改過(guò)的Nginx配置文件生效: kill -HUP 6302 或者用更簡(jiǎn)便的方法: kil
14、l -HUP cat /usr/local/nginx/logs/nginx.pid,編寫(xiě)每天定時(shí)切割Nginx日志的腳本,1、創(chuàng)建腳本/usr/local/nginx/sbin/cut_nginx_log.sh,輸入以下內(nèi)容: #!/bin/bash # This script run at 00:00 # The Nginx logs path logs_path=/usr/local/nginx/logs/ mkdir -p $logs_path$(date -d yesterday +%Y)/$(date -d yesterday +%m)/ mv $logs_pathaccess.l
15、og $logs_path$(date -d yesterday +%Y)/$(date -d yesterday +%m)/access_$(date -d yesterday +%Y%m%d).log kill -USR1 cat /usr/local/nginx/logs/nginx.pid 2、設(shè)置crontab,每天凌晨00:00切割nginx訪(fǎng)問(wèn)日志 crontab -e 輸入以下內(nèi)容: 00 00 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh,總結(jié),1、對(duì)于中、小型企業(yè),如果沒(méi)有資金去購(gòu)買(mǎi)昂貴的四/七層負(fù)載均衡交換機(jī),那么Nginx是不錯(cuò)的七層負(fù)載均衡選擇,并且可以通過(guò) Nginx + Keepalived 實(shí)現(xiàn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考物理總復(fù)習(xí)專(zhuān)題二相互作用實(shí)驗(yàn)二探究彈力和彈簧伸長(zhǎng)量的關(guān)系練習(xí)含答案
- 江蘇省2015-2015學(xué)年高中英語(yǔ) Unit3 Amazing people project教案 牛津譯林版必修2
- 八年級(jí)歷史下冊(cè) 第12課 欣欣向榮的科教文體事業(yè)教案 北師大版
- 2024年九年級(jí)語(yǔ)文上冊(cè) 第二單元 第6課《敬業(yè)與樂(lè)業(yè)》說(shuō)課稿 新人教版
- 2024-2025學(xué)年高中語(yǔ)文 第二單元 珠星碧月彩云中 4 詞三首(一)教案 語(yǔ)文版必修3
- 2023四年級(jí)數(shù)學(xué)下冊(cè) 4 小數(shù)的意義和性質(zhì) 3小數(shù)點(diǎn)移動(dòng)引起小數(shù)大小的變化第2課時(shí) 小數(shù)點(diǎn)移動(dòng)引起小數(shù)大小變化的規(guī)律(2)配套教案 新人教版
- 二年級(jí)語(yǔ)文上冊(cè) 課文3 9 黃山奇石教案 新人教版
- 2024-2025學(xué)年新教材高中歷史 第八單元 中華民族的抗日戰(zhàn)爭(zhēng)和人民解放戰(zhàn)爭(zhēng) 第24課 全民族浴血奮戰(zhàn)與抗日戰(zhàn)爭(zhēng)的勝利教案3 新人教版必修《中外歷史綱要(上)》
- 變壓器報(bào)停委托書(shū)
- 租房電器超過(guò)使用年限合同(2篇)
- 諾瓦科技LED多媒體播放器快速使用指引
- 鋼管靜壓樁質(zhì)量監(jiān)理實(shí)施細(xì)則Word版(共25頁(yè))
- 第4課《一天的食物》教學(xué)設(shè)計(jì)(教科版小學(xué)四年級(jí)上冊(cè)科學(xué)第一單元)
- 《沁園春·長(zhǎng)沙》理解性默寫(xiě)
- 畢業(yè)設(shè)計(jì)論文--伊利集團(tuán)內(nèi)部控制的調(diào)查分析
- GB-T 41233-2022 凍魚(yú)糜制品(高清版)
- 羊水栓塞-(PPT)PPT課件
- 藥物合成反應(yīng)(全)
- 小學(xué)科學(xué)蘇教版二年級(jí)上冊(cè)全冊(cè)教案(共12課)
- 第5批高效節(jié)能電機(jī)目錄(高壓)
- 醫(yī)院學(xué)習(xí)制度管理辦法
評(píng)論
0/150
提交評(píng)論