版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、使用使用NginxNginx輕松實現(xiàn)開源負載均衡輕松實現(xiàn)開源負載均衡張宴張宴(http:/)2008.9.20 北京個人簡介個人簡介 張宴,曾在新浪等公司任系統(tǒng)工程師、系統(tǒng)架構張宴,曾在新浪等公司任系統(tǒng)工程師、系統(tǒng)架構師。工作內(nèi)容主要涉及:服務器系統(tǒng)架構設計與師。工作內(nèi)容主要涉及:服務器系統(tǒng)架構設計與部署、系統(tǒng)運維與調(diào)優(yōu)、網(wǎng)絡故障解決、網(wǎng)站后部署、系統(tǒng)運維與調(diào)優(yōu)、網(wǎng)絡故障解決、網(wǎng)站后端以及接口類端以及接口類PHPPHP程序開發(fā)、程序開發(fā)、UnixUnix開源軟件二次開開源軟件二次開發(fā)、服務器監(jiān)控系統(tǒng)開發(fā)等。具有發(fā)、服務器監(jiān)控系統(tǒng)開發(fā)等。具有CDNCDN部署,跨部署,跨IDCIDC的數(shù)據(jù)傳輸,電
2、信網(wǎng)通南北互通,以及門戶類的數(shù)據(jù)傳輸,電信網(wǎng)通南北互通,以及門戶類FLVFLV視頻分享網(wǎng)站視頻分享網(wǎng)站新浪播客架構設計經(jīng)驗。新浪播客架構設計經(jīng)驗。什么是什么是NginxNginx? Nginx (“engine x”) Nginx (“engine x”) 是俄羅斯人是俄羅斯人Igor Sysoev(Igor Sysoev(塞塞索耶夫索耶夫) )編寫的一款高性能的編寫的一款高性能的 HTTP HTTP 和反向代理服務和反向代理服務器。器。 Nginx Nginx 已經(jīng)在俄羅斯最大的門戶網(wǎng)站已經(jīng)在俄羅斯最大的門戶網(wǎng)站 Rambler Rambler MediaMedia(www.rambler.
3、ruwww.rambler.ru)上運行了)上運行了3 3年時間,同時年時間,同時俄羅斯超過俄羅斯超過20%20%的虛擬主機平臺采用的虛擬主機平臺采用NginxNginx作為反向作為反向代理服務器。代理服務器。 在國內(nèi),已經(jīng)有在國內(nèi),已經(jīng)有 新浪博客、新浪播客、網(wǎng)易新聞、新浪博客、新浪播客、網(wǎng)易新聞、六間房、六間房、Discuz!Discuz!、水木社區(qū)、豆瓣、水木社區(qū)、豆瓣、YUPOOYUPOO、海內(nèi)、迅雷在線、海內(nèi)、迅雷在線 等多家網(wǎng)站使用等多家網(wǎng)站使用 Nginx Nginx 作作為為WebWeb服務器或反向代理服務器。服務器或反向代理服務器。使用使用NginxNginx做七層負載均衡的
4、理由做七層負載均衡的理由 1 1、高并發(fā)連接:、高并發(fā)連接:官方測試能夠支撐官方測試能夠支撐5 5萬并發(fā)連萬并發(fā)連接,在實際生產(chǎn)環(huán)境中跑到接,在實際生產(chǎn)環(huán)境中跑到2 23 3萬并發(fā)連接數(shù)。萬并發(fā)連接數(shù)。 2 2、內(nèi)存消耗少:、內(nèi)存消耗少:在在3 3萬并發(fā)連接下,開啟的萬并發(fā)連接下,開啟的1010個個Nginx Nginx 進程才消耗進程才消耗150M150M內(nèi)存內(nèi)存(15M15M* *10=150M10=150M)。)。 3 3、配置文件非常簡單:、配置文件非常簡單:風格跟程序一樣通俗風格跟程序一樣通俗易懂。易懂。 4 4、成本低廉:、成本低廉:NginxNginx為開源軟件,可以免費使為開源
5、軟件,可以免費使用。而購買用。而購買F5 BIG-IPF5 BIG-IP、NetScalerNetScaler等硬件負載等硬件負載均衡交換機則需要十多萬至幾十萬人民幣。均衡交換機則需要十多萬至幾十萬人民幣。使用使用NginxNginx做七層負載均衡的理由做七層負載均衡的理由 5 5、支持、支持RewriteRewrite重寫規(guī)則:重寫規(guī)則:能夠根據(jù)域名、能夠根據(jù)域名、URLURL的不同,將的不同,將 HTTP HTTP 請求分到不同的后端請求分到不同的后端服務器群組。服務器群組。 6 6、內(nèi)置的健康檢查功能:、內(nèi)置的健康檢查功能:如果如果 Nginx Nginx Proxy Proxy 后端的
6、某臺后端的某臺 Web Web 服務器宕機了,不服務器宕機了,不會影響前端訪問。會影響前端訪問。 7 7、節(jié)省帶寬:、節(jié)省帶寬:支持支持 GZIP GZIP 壓縮,可以添加壓縮,可以添加瀏覽器本地緩存的瀏覽器本地緩存的 Header Header 頭。頭。 8 8、穩(wěn)定性高:、穩(wěn)定性高:用于反向代理,宕機的概率用于反向代理,宕機的概率微乎其微。微乎其微。Nginx Nginx 負載均衡的典型應用負載均衡的典型應用 硬件、軟件七層負載均衡對比:NetScaler與Nginx硬件、軟件七層負載均衡對比:NetScaler與Nginx五分鐘搞定 Nginx 負載均衡編譯安裝編譯安裝NginxNgin
7、x1、創(chuàng)建供Nginx使用的組和帳號:/usr/sbin/groupadd www -g 48/usr/sbin/useradd -u 48 -g www www2、編譯安裝rewrite模塊支持包wget ftp:/ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gztar zxvf pcre-7.7.tar.gzcd pcre-7.7/./configuremake & make installcd ./編譯安裝編譯安裝NginxNginx3、編譯安裝Nginxwget http:/sysoev.ru/nginx/n
8、ginx-0.7.17.tar.gztar zxvf nginx-0.7.17.tar.gzcd nginx-0.7.17/./configure -user=www -group=www -prefix=/usr/local/nginx -with-http_stub_status_module -with-http_ssl_modulemake & make installcd ./4、備份默認nginx.conf配置文件mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.old創(chuàng)建創(chuàng)建nginx.confngin
9、x.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; worker_connections 51200;創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配
10、置文件(2)(2) http 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_nodelay on;創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(3)(3) #gzi
11、p on; #gzip_min_length 1k; #gzip_buffers 4 16k; #gzip_http_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 server 0:80; server 1:80; server 2:80;
12、server 3:81; upstream 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 *; proxy_redirect off; #后端的Web服務器可以通過X-Forwarded-For獲取用戶真實IP proxy_set_header X-Forwarded-For $remote_addr; if ($requ
13、est_uri * .*.(js|css|gif|jpg|jpeg|png|bmp|swf)$) proxy_pass http:/; if ($request_uri * /view/(.*)$) proxy_pass http:/; proxy_pass http:/;創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(6)(6) #定義日志格式 log_format access $remote_addr - $remote_user $time_local $request $status $body_bytes_sent $http_referer $http_user
14、_agent $http_x_forwarded_for; #打日志 access_log /usr/local/nginx/logs/access.log access;創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(7)(7) #允許客戶端請求的最大的單個文件字節(jié)數(shù) client_max_body_size 10m; #緩沖區(qū)代理緩沖用戶端請求的最大字節(jié)數(shù) 可以理解為先保存到本地再傳給用戶 client_body_buffer_size 128k; #跟后端服務器連接的超時時間_發(fā)起握手等候響應超時時間 proxy_connect_timeout 600; #連接成功后_
15、等候后端服務器響應時間_其實已經(jīng)進入后端的排隊之中等候處理 proxy_read_timeout 600; #后端服務器數(shù)據(jù)回傳時間_就是在規(guī)定時間之內(nèi)后端服務器必須傳完所有的數(shù)據(jù) proxy_send_timeout 600;創(chuàng)建創(chuàng)建nginx.confnginx.conf配置文件配置文件(8)(8) #代理請求緩存區(qū)_這個緩存區(qū)間會保存用戶的頭信息以供Nginx進行規(guī)則處理_一般只要能保存下頭信息即可 proxy_buffer_size 8k; #同上 告訴Nginx保存單個用的幾個Buffer 最大用多大空間 proxy_buffers 4 32k; #如果系統(tǒng)很忙的時候可以申請更大的p
16、roxy_buffers 官方推薦*2 proxy_busy_buffers_size 64k; #proxy緩存臨時文件的大小 proxy_temp_file_write_size 64k; 配置文件編寫完畢啟動啟動NginxNginx/usr/local/nginx/sbin/nginx t如果屏幕顯示以下兩行信息,說明配置文件正確:the configuration file /usr/local/nginx/conf/nginx.conf syntax is okthe configuration file /usr/local/nginx/conf/nginx.conf was te
17、sted successfully那么,則可以啟動Nginx服務:ulimit -SHn 51200/usr/local/nginx/sbin/nginx不中斷服務平滑修改不中斷服務平滑修改NginxNginx配置配置、修改/usr/local/nginx/conf/nginx.conf配置文件后,請執(zhí)行以下命令檢查配置文件是否正確:/usr/local/nginx/sbin/nginx -t如果屏幕顯示以下兩行信息,說明配置文件正確:the configuration file /usr/local/nginx/conf/nginx.conf syntax is okthe configur
18、ation file /usr/local/nginx/conf/nginx.conf was tested successfully、這時,輸入以下命令查看Nginx主進程號:ps -ef | grep nginx: master process | grep -v grep | awk -F print $2屏幕顯示的即為Nginx主進程號,例如:6302這時,執(zhí)行以下命令即可使修改過的Nginx配置文件生效:kill -HUP 6302或者用更簡便的方法:kill -HUP cat /usr/local/nginx/logs/nginx.pid編寫每天定時切割編寫每天定時切割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
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石河子大學《園藝植物育種學》2022-2023學年第一學期期末試卷
- 語文情景劇主持詞
- 石河子大學《農(nóng)村公共管理》2022-2023學年第一學期期末試卷
- 石河子大學《國際貿(mào)易實務》2022-2023學年第一學期期末試卷
- 沈陽理工大學《體驗型交互設計》2023-2024學年第一學期期末試卷
- 沈陽理工大學《模擬電子技術》2022-2023學年期末試卷
- 沈陽理工大學《機械原理》2022-2023學年第一學期期末試卷
- 關于山林看護合同
- 國外采購合同
- 合同把關管理要求
- 居民死亡醫(yī)學證明模板
- 河北開放大學2024年《金融市場》形考任務1-4答案
- 《Unit 10 You're supposed to shake hands》單元檢測題及答案
- (高清版)DZT 0073-2016 電阻率剖面法技術規(guī)程
- 中考英語一模作文-征集“文化自信類”寫作
- 門面招租方案
- 稅務學習練兵(辦公室條線)考試題庫(含答案)
- 食堂安全隱患及防范措施
- 新生兒肛管排氣
- 經(jīng)濟思想史知識點總匯
- 護理安全質(zhì)控總結分析報告
評論
0/150
提交評論