版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、使用Nginx輕松實(shí)現(xiàn)開源負(fù)載均衡個(gè)人簡(jiǎn)介個(gè)人簡(jiǎn)介 張宴,曾在新浪等公司任系統(tǒng)工程師、系統(tǒng)架構(gòu)張宴,曾在新浪等公司任系統(tǒng)工程師、系統(tǒng)架構(gòu)師。工作內(nèi)容主要涉及:服務(wù)器系統(tǒng)架構(gòu)設(shè)計(jì)與師。工作內(nèi)容主要涉及:服務(wù)器系統(tǒng)架構(gòu)設(shè)計(jì)與部署、系統(tǒng)運(yùn)維與調(diào)優(yōu)、網(wǎng)絡(luò)故障解決、網(wǎng)站后部署、系統(tǒng)運(yùn)維與調(diào)優(yōu)、網(wǎng)絡(luò)故障解決、網(wǎng)站后端以及接口類端以及接口類PHPPHP程序開發(fā)、程序開發(fā)、UnixUnix開源軟件二次開開源軟件二次開發(fā)、服務(wù)器監(jiān)控系統(tǒng)開發(fā)等。具有發(fā)、服務(wù)器監(jiān)控系統(tǒng)開發(fā)等。具有CDNCDN部署,跨部署,跨IDCIDC的數(shù)據(jù)傳輸,電信網(wǎng)通南北互通,以及門戶類的數(shù)據(jù)傳輸,電信網(wǎng)通南北互通,以及門戶類FLVFLV視頻
2、分享網(wǎng)站視頻分享網(wǎng)站新浪播客架構(gòu)設(shè)計(jì)經(jīng)驗(yàn)。新浪播客架構(gòu)設(shè)計(jì)經(jīng)驗(yàn)。什么是什么是NginxNginx? Nginx (“engine x”) Nginx (“engine x”) 是俄羅斯人是俄羅斯人Igor Sysoev(Igor Sysoev(塞塞索耶夫索耶夫) )編寫的一款高性能的編寫的一款高性能的 HTTP HTTP 和反向代理服務(wù)和反向代理服務(wù)器。器。 Nginx Nginx 已經(jīng)在俄羅斯最大的門戶網(wǎng)站已經(jīng)在俄羅斯最大的門戶網(wǎng)站 Rambler Rambler MediaMedia()上運(yùn)行了()上運(yùn)行了3 3年時(shí)間,同時(shí)俄羅斯超過年時(shí)間,同時(shí)俄羅斯超過20%20%的的虛擬主機(jī)平臺(tái)采用虛
3、擬主機(jī)平臺(tái)采用NginxNginx作為反向代理服務(wù)器。作為反向代理服務(wù)器。 在國(guó)內(nèi),已經(jīng)有在國(guó)內(nèi),已經(jīng)有 新浪博客、新浪播客、網(wǎng)易新聞、新浪博客、新浪播客、網(wǎng)易新聞、六間房、六間房、56 56 、Discuz!Discuz!、水木社區(qū)、豆瓣、水木社區(qū)、豆瓣、YUPOOYUPOO、海內(nèi)、迅雷在線、海內(nèi)、迅雷在線 等多家網(wǎng)站使用等多家網(wǎng)站使用 Nginx Nginx 作作為為WebWeb服務(wù)器或反向代理服務(wù)器。服務(wù)器或反向代理服務(wù)器。使用使用NginxNginx做七層負(fù)載均衡的理由做七層負(fù)載均衡的理由 1 1、高并發(fā)連接:官方測(cè)試能夠支撐、高并發(fā)連接:官方測(cè)試能夠支撐5 5萬并發(fā)連萬并發(fā)連接,在實(shí)
4、際生產(chǎn)環(huán)境中跑到接,在實(shí)際生產(chǎn)環(huán)境中跑到2 23 3萬并發(fā)連接數(shù)。萬并發(fā)連接數(shù)。 2 2、內(nèi)存消耗少:在、內(nèi)存消耗少:在3 3萬并發(fā)連接下,開啟的萬并發(fā)連接下,開啟的1010個(gè)個(gè)Nginx Nginx 進(jìn)程才消耗進(jìn)程才消耗150M150M內(nèi)存內(nèi)存(15M15M* *10=150M10=150M)。)。 3 3、配置文件非常簡(jiǎn)單:風(fēng)格跟程序一樣通俗、配置文件非常簡(jiǎn)單:風(fēng)格跟程序一樣通俗易懂。易懂。 4 4、成本低廉:、成本低廉:NginxNginx為開源軟件,可以免費(fèi)使為開源軟件,可以免費(fèi)使用。而購(gòu)買用。而購(gòu)買F5 BIG-IPF5 BIG-IP、NetScalerNetScaler等硬件負(fù)載等
5、硬件負(fù)載均衡交換機(jī)則需要十多萬至幾十萬人民幣。均衡交換機(jī)則需要十多萬至幾十萬人民幣。使用使用NginxNginx做七層負(fù)載均衡的理由做七層負(fù)載均衡的理由 5 5、支持、支持RewriteRewrite重寫規(guī)則:能夠根據(jù)域名、重寫規(guī)則:能夠根據(jù)域名、URLURL的不同,將的不同,將 HTTP HTTP 請(qǐng)求分到不同的后端請(qǐng)求分到不同的后端服務(wù)器群組。服務(wù)器群組。 6 6、內(nèi)置的健康檢查功能:如果、內(nèi)置的健康檢查功能:如果 Nginx Nginx Proxy Proxy 后端的某臺(tái)后端的某臺(tái) Web Web 服務(wù)器宕機(jī)了,不服務(wù)器宕機(jī)了,不會(huì)影響前端訪問。會(huì)影響前端訪問。 7 7、節(jié)省帶寬:支持、
6、節(jié)省帶寬:支持 GZIP GZIP 壓縮,可以添加壓縮,可以添加瀏覽器本地緩存的瀏覽器本地緩存的 Header Header 頭。頭。 8 8、穩(wěn)定性高:用于反向代理,宕機(jī)的概率、穩(wěn)定性高:用于反向代理,宕機(jī)的概率微乎其微。微乎其微。Nginx Nginx 負(fù)載均衡的典型應(yīng)用負(fù)載均衡的典型應(yīng)用 硬件、軟件七層負(fù)載均衡對(duì)比:NetScaler與Nginx硬件、軟件七層負(fù)載均衡對(duì)比:NetScaler與Nginx五分鐘搞定 Nginx 負(fù)載均衡編譯安裝編譯安裝NginxNginx1、創(chuàng)建供Nginx使用的組和帳號(hào):/usr/sbin/groupadd www -g 48/usr/sbin/user
7、add -u 48 -g www www2、編譯安裝rewrite模塊支持包c(diǎn)d pcre-7.7/./configuremake & make installcd ./編譯安裝編譯安裝NginxNginx3、編譯安裝Nginx./configure -user=www -group=www -prefix=/usr/local/nginx -with- _stub_status_module -with- _ssl_modulemake & make installcd ./4、備份默認(rèn)nginx.conf配置文件mv /usr/local/nginx/conf/nginx.
8、conf /usr/local/nginx/conf/nginx.old創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(1)(1)1、創(chuàng)建Nginx配置文件vi /usr/local/nginx/conf/nginx.conf 2、輸入配置文件內(nèi)容user www www;worker_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; w
9、orker_connections 51200;創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(2)(2) include mime.types; default_type application/octet-stream; #charset gb2312; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodela
10、y on;創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(3)(3) #gzip on; #gzip_min_length 1k; #gzip_buffers 4 16k; #gzip_ _version 1.0; #gzip_comp_level 2; #gzip_types text/plain application/x-javascript text/css application/xml; #gzip_vary on;創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(4)(4) upstream web.abc server 0
11、:80; server 1:80; server 2:80; server 3:81; upstream squid.abc server 0:80 weight=3; server 1:80; server 2:80; 創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(5)(5) server listen 80; server_name abc *.abc ; proxy_redirect off; #后端的Web服務(wù)器可以通過X-Forwar
12、ded-For獲取用戶真實(shí)IP proxy_set_header X-Forwarded-For $remote_addr; if ($request_uri * .*.(js|css|gif|jpg|jpeg|png|bmp|swf)$) proxy_pass :/squid.abc ; if ($request_uri * /view/(.*)$) proxy_pass :/squid.abc ; proxy_pass :/web.abc ;創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(6)(6) #定義日志格式 log_format access $remote_ad
13、dr - $remote_user $time_local $request $status $body_bytes_sent $ _referer $ _user_agent $ _x_forwarded_for; #打日志 access_log /usr/local/nginx/logs/access.log access;創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(7)(7) #允許客戶端請(qǐng)求的最大的單個(gè)文件字節(jié)數(shù) client_max_body_size 10m; #緩沖區(qū)代理緩沖用戶端請(qǐng)求的最大字節(jié)數(shù) 可以理解為先保存到本地再傳給用戶 client_body_b
14、uffer_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)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(8)(8) #代理請(qǐng)求緩存區(qū)_這個(gè)緩存區(qū)間會(huì)保存用戶的頭信息以供Nginx進(jìn)行規(guī)則處理_一般只要能保存下頭信息即可 proxy_buffer_siz
15、e 8k; #同上 告訴Nginx保存單個(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; 配置文件編寫完畢啟動(dòng)啟動(dòng)NginxNginx/usr/local/nginx/sbin/nginx t如果屏幕顯示以下兩行信息,說明配置文件正確:the configuration file /usr/local/nginx/conf/nginx.
16、conf syntax is okthe configuration file /usr/local/nginx/conf/nginx.conf was tested successfully那么,則可以啟動(dòng)Nginx服務(wù):ulimit -SHn 51200/usr/local/nginx/sbin/nginx不中斷服務(wù)平滑修改不中斷服務(wù)平滑修改NginxNginx配置配置、修改/usr/local/nginx/conf/nginx.conf配置文件后,請(qǐng)執(zhí)行以下命令檢查配置文件是否正確:/usr/local/nginx/sbin/nginx -t如果屏幕顯示以下兩行信息,說明配置文件正確:t
17、he configuration file /usr/local/nginx/conf/nginx.conf syntax is okthe 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í)行以下命令即可使修改過的Nginx配置文件生效:kill -HUP 63
18、02或者用更簡(jiǎn)便的方法:kill -HUP cat /usr/local/nginx/logs/nginx.pid編寫每天定時(shí)切割編寫每天定時(shí)切割NginxNginx日志的腳本日志的腳本1、創(chuàng)建腳本/usr/local/nginx/sbin/cut_nginx_log.sh,輸入以下內(nèi)容:#!/bin/bash# This script run at 00:00# The Nginx logs pathlogs_path=/usr/local/nginx/logs/mkdir -p $logs_path$(date -d yesterday +%Y)/$(date -d yesterday +%m)/mv $logs_pathaccess.log $logs_path$(date -d yesterday +%Y)/$(date -d yesterday +%m)/access_$(date -d yesterday +%Y%m%d).logkill -USR1 cat /usr/local/nginx/logs/nginx.pid2、設(shè)置crontab,每天凌晨00:00切割nginx訪問日志crontab -e輸入以下內(nèi)容:00 00
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育工作者的先進(jìn)事跡(13篇)
- 會(huì)計(jì)類實(shí)習(xí)報(bào)告5篇
- 七夕節(jié)超市促銷方案(5篇)
- DB12T 490.1-2013 社區(qū)管理和服務(wù)信息化規(guī)范 第1部分:總則
- 校園演講稿合集十篇
- 學(xué)習(xí)委員競(jìng)選演講稿集合5篇
- 主題教學(xué)課件教學(xué)課件
- 美術(shù)課件寫生教學(xué)課件
- 春雨課件教學(xué)課件
- 葫蘆育種合同(2篇)
- 服務(wù)器運(yùn)維應(yīng)急預(yù)案
- (新版)研學(xué)旅行指導(dǎo)師認(rèn)證考試復(fù)習(xí)題庫大全(附答案)
- 螺栓檢測(cè)報(bào)告新
- 燒傷護(hù)理查房小兒燒傷護(hù)理查房PPT
- 婦聯(lián)五年工作總結(jié)九篇
- 饑荒游戲修改編程
- 鐵路混凝土拌和站標(biāo)準(zhǔn)化管理演示
- 2023年現(xiàn)行施工規(guī)范大全
- 川教版生命生態(tài)安全二上第13課 看誰記得快又牢 教學(xué)設(shè)計(jì)
- 2022《石化化工行業(yè)數(shù)字化轉(zhuǎn)型路徑藍(lán)皮書》
- 2023年廣東省公務(wù)員考試《行測(cè)》真題及答案
評(píng)論
0/150
提交評(píng)論