Nginx編譯安裝與簡單配置手冊(cè)_第1頁
Nginx編譯安裝與簡單配置手冊(cè)_第2頁
Nginx編譯安裝與簡單配置手冊(cè)_第3頁
Nginx編譯安裝與簡單配置手冊(cè)_第4頁
Nginx編譯安裝與簡單配置手冊(cè)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、目 錄Nginx編譯安裝與簡單負(fù)載均衡配置1Nginx安裝1準(zhǔn)備的軟件1安裝 nginx-1.4.1.tar.gz2可能的錯(cuò)誤3配置負(fù)載均衡4附錄一 Nginx常見指令5啟動(dòng) Nginx5停止 Nginx5Nginx 重載配置5檢查配置文件是否正確5顯示幫助信息6附錄二 nginx.conf配置文件詳解6Nginx編譯安裝與簡單負(fù)載均衡配置Nginx安裝準(zhǔn)備的軟件Ø nginx-1.4.1.tar.gz (以nginx-1.4.1為例)下載地址:/en/download.html 其中包含開發(fā)版和穩(wěn)定版,到目前為止穩(wěn)定版本最高版本號(hào)為1.4.1Ø

2、; nginx-sticky-module-1.1.tar.gz(以nginx-sticky-module-1.1為例)下載地址:安裝 nginx-1.4.1.tar.gzØ 解壓nginx-1.4.1.tar.gz(解壓到/root下)rootc-admin Nginx#cd .rootc-admin Nginx#tar zxvf nginx-1.4.1.tar.gzØ 解壓nginx-sticky-module-1.1.tar.gz(解壓到/root下)rootc-admin Nginx#tar zxvf nginx-sticky-module-1.1.tar.gz&#

3、216; 檢查安裝環(huán)境并配置切換到nginx-1.4.1目錄下具體執(zhí)行命令如下rootc-admin Nginx#cd nginx-1.4.1rootc-admin Nginx#./configure -add-module= /root/nginx-sticky-module-1.1注:nginx-1.4.1為解壓nginx-1.4.1.tar.gz后的根目錄。/root/nginx-sticky-module-1.1為解壓nginx-sticky-module-1.1.tar.gz后的根目錄。Ø 編譯rootc-admin Nginx#make如編譯過程中出現(xiàn)錯(cuò)誤可參見下面可能出

4、現(xiàn)的錯(cuò)誤。執(zhí)行該處命令有可能會(huì)因?yàn)槿鄙俨僮飨到y(tǒng)類庫而導(dǎo)致編譯失敗,15s現(xiàn)場(chǎng)遇到過,當(dāng)時(shí)15s聯(lián)系的中標(biāo)系統(tǒng)人員帶著系統(tǒng)盤過去解決的。Ø 安裝rootc-admin Nginx# make installØ 啟動(dòng)nginx進(jìn)入Nginx 默認(rèn)安裝目錄 /usr/local/nginx/sbin 目錄.rootc-admin sbin#./nginxØ 驗(yàn)證安裝是否成功在瀏覽器地輸入 如果出現(xiàn)以下類似頁面代表安裝成功 Ø 常用操作命令見附錄一。可能的錯(cuò)誤1. 錯(cuò)誤1: 解決:32為操作系統(tǒng)執(zhí)行:ln -s /usr/loca

5、l/lib/libpcre.so.1 /lib64為操作系統(tǒng)執(zhí)行:ln -s /usr/local/lib/libpcre.so.1 /lib642. 錯(cuò)誤2: 提示在頭文件中已經(jīng)定義了NGX_SENDFILE_LIMIT。且在文件nginx-1.4.1/src/os/unix/ngx_linux_sendfile_chain.c中重新定義,重定義錯(cuò)誤。解決:修改文件nginx-1.4.1/src/os/unix/ngx_linux_sendfile_chain.c中 27行代碼 #define NGX_SENDFILE_LIMIT 2147483647L修改為 #define NGX_SEN

6、DFILE_LIMIT 0x80000000配置負(fù)載均衡負(fù)載均衡所在機(jī)器IP為18,應(yīng)用服務(wù)器所在兩個(gè)節(jié)點(diǎn)的機(jī)器分別為19 20 則簡要配置如下(如需其他參數(shù)可在nginx.conf文件中添加):Ø 修改Nginx 配置文件(/usr/local/nginx/conf/nginx.conf)worker_processes 8;worker_rlimit_nofile 51200;events use epoll; worker_connections 51200;http include mime.types;

7、 default_type application/octet-stream; keepalive_timeout 120; tcp_nodelay on; upstream 18sticky;server 19:8080;server 20:8080; server listen 80;server_name 18; location / proxy_pass http:/ 18; Ø 檢查配置文件是否正確 切換到nginx安裝根目錄下的sbin目錄下 執(zhí)行./n

8、ginx -tØ 重啟Nginx 切換到nginx安裝根目錄下的sbin目錄下 執(zhí)行./nginx s reloadØ 驗(yàn)證負(fù)載均衡是否配置成功 瀏覽器中輸入 /st/附錄一 Nginx常見指令啟動(dòng) Nginx切換到nginx安裝根目錄下的sbin目錄下 執(zhí)行 ./nginx 注:如果nginx不是安裝在默認(rèn)路徑(/usr/local/nginx)下,則后面添加“-p ./”的參數(shù)進(jìn)行啟動(dòng),如“./nginx p ./”(以下停止和重啟操作同樣適用)。停止 Nginx切換到nginx安裝根目錄下的sbin目錄下 執(zhí)行 ./nginx s sto

9、p如不在默認(rèn)安裝路徑下則執(zhí)行 ./nginx s stop p ./Nginx 重載配置切換到nginx安裝根目錄下的sbin目錄下 執(zhí)行./nginx s reload如不在默認(rèn)安裝路徑下則執(zhí)行 ./nginx s reload p ./檢查配置文件是否正確切換到nginx安裝根目錄下的sbin目錄下 執(zhí)行./nginx t如果顯示如下信息,則表示配置文件正確。否則,會(huì)有相關(guān)錯(cuò)誤提示。nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr

10、/local/nginx/conf/nginx.conf test is successful顯示幫助信息切換到nginx安裝根目錄下的sbin目錄下 執(zhí)行./nginx h附錄二 nginx.conf配置文件詳解#使用的用戶和組user www www;#指定工作衍生進(jìn)程數(shù)(一般等于CPU的總核數(shù)或者總核數(shù)的兩倍),每個(gè)進(jìn)程耗費(fèi)10MB-12MB內(nèi)存worker_processes 8;#指定錯(cuò)誤日志存放的路徑,錯(cuò)誤日志記錄級(jí)別可選項(xiàng)為:debug | info | noticd | warn | error | criterror_log  logs/error.log;#指定錯(cuò)

11、誤日志級(jí)別#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#指定pid存放的路徑,文件內(nèi)記錄當(dāng)前nginx主進(jìn)程的ID,kill -HUP 'logs/nginx.pid'#pid        logs/nginx.pid;#指定文件描述符數(shù)量worker_rlimit_nofile 51200;#工作模式及連接數(shù)上限events     #提高lin

12、ux的io操作選項(xiàng),Linux系統(tǒng)推薦采用epoll模型,F(xiàn)reeBSD系統(tǒng)推薦采用kequeue,linux下建議開啟   use epoll;   #允許最大連接數(shù)   worker_connections      51200;http     #mimie.types 瀏覽器請(qǐng)求的文件媒體類型    include       mime.types; 

13、;   #用來告訴瀏覽器請(qǐng)求的文件媒體類型    default_type  application/octet-stream;    #設(shè)置使用的字符集,如果一個(gè)網(wǎng)站有多種字符集,請(qǐng)不要隨便設(shè)置,應(yīng)該讓程序員在HTML代碼中通過Meta標(biāo)簽設(shè)置    #charset gb2312;        #日志記錄格式    #log_format  main  '

14、;$remote_addr - $remote_user $time_local "$request" '    #                  '$status $body_bytes_sent "$http_referer" '    #     

15、;             '"$http_user_agent" "$http_x_forwarded_for"'        #日志名稱,和日志記錄格式采用main    #access_log  logs/access.log  main;      &#

16、160; server_names_hash_bucket_size 128;    #用于設(shè)置客戶端請(qǐng)求的Header頭緩沖區(qū)大小,大部分情況1KB大小足夠。不能超過large_client_header_buffers緩沖區(qū)大小的設(shè)置    client_header_buffer_size 32k;    #該指令用于設(shè)置客戶端請(qǐng)求的Header頭緩沖區(qū)大小,默認(rèn)值為4KB。    large_client_header_buffers 4 32k; 

17、0;      #設(shè)置客戶端能夠上傳的文件大小,默認(rèn)為1m    client_max_body_size 8m;        sendfile on;    #該指令允許或禁止使用FreeBSD上的TCP_NOPUSH,或者Linux上的TCP_CORK套接字選項(xiàng)。    #tcp_nopush on;          &

18、#160; #keepalive_timeout  0該指令可以使客戶端到服務(wù)器端的連接持續(xù)有效    keepalive_timeout 60;    #該指令允許或禁止使用套接字選項(xiàng)TCP_NODELAY,僅適用于keep-alive連接    tcp_nodelay on;            fastcgi_connect_timeout 300;    fastcg

19、i_send_timeout 300;    #該指令用于設(shè)置upstream模塊等待FastCGI進(jìn)程發(fā)送數(shù)據(jù)的超時(shí)時(shí)間,默認(rèn)值為60s;    fastcgi_read_timeout 200;    #該指令設(shè)置FastCGI服務(wù)器相應(yīng)頭部的緩沖區(qū)大小。通常情況,該緩沖區(qū)大小設(shè)置等于fastcgi_buffers指令設(shè)置的一個(gè)緩沖區(qū)的大小。    fastcgi_buffer_size 64k;    #該指令設(shè)置了讀取FastCGI進(jìn)程返

20、回信息的緩沖區(qū)數(shù)量和大小。    fastcgi_buffers 4 64k;        fastcgi_busy_buffers_size 128k;    fastcgi_temp_file_writer_size 128k;        #開啟gzip壓縮,對(duì)網(wǎng)頁文件、css、js、xml等啟動(dòng)gzip壓縮,減少數(shù)據(jù)傳輸量,提高訪問速度。    gzip on; &

21、#160;  #該指令允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取。    gzip_min_length 1k;    #設(shè)置系統(tǒng)獲取幾個(gè)單位的緩存用于存儲(chǔ)gzip的壓縮結(jié)果數(shù)據(jù)流。下面的設(shè)置代表16k為單位,按照原始數(shù)據(jù)大小以16k為單位的4倍申請(qǐng)內(nèi)存。    gzip_buffers 4 16k;    #識(shí)別http的協(xié)議版本。    gzip_http_version 1.1;

22、    #gzip壓縮比,1 壓縮比最小處理速度最快,9 壓縮比最大但處理速度最慢(傳輸快但比較消耗cpu)    gzip_comp_level 2;    #匹配mime類型進(jìn)行壓縮,無論是否指定,“text/html”類型總是會(huì)被壓縮的。    gzip_types text/plain application/x-javascript text/css application/xml;    gzip_vary on; 

23、0;  #該指令定義了一個(gè)數(shù)據(jù)區(qū),其中記錄會(huì)話狀態(tài)信息。  定義一個(gè)叫“crawler”的記錄去,總?cè)萘繛?0MB,以變量$binary_remote_addr作為會(huì)話的判斷基準(zhǔn)(即一個(gè)地址一個(gè)會(huì)話)    #limit_zone crawler $binary_remote_addr 10m;        #允許客戶端請(qǐng)求的最大單個(gè)文件字節(jié)數(shù)    client_max_body_size 300m;     &

24、#160;  #緩沖區(qū)代理緩沖用戶端請(qǐng)求的最大字節(jié)數(shù),可以理解為先保存到本地再傳給用戶    client_body_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ì)之中等候處理    p

25、roxy_read_timeout 600;        #后端服務(wù)器數(shù)據(jù)回傳時(shí)間_就是在規(guī)定時(shí)間內(nèi)后端服務(wù)器必須傳完所有的數(shù)據(jù)    proxy_send_timeout 600;        #代理請(qǐng)求緩存區(qū)_這個(gè)緩存區(qū)會(huì)保存用戶的頭信息以供Nginx進(jìn)行規(guī)則處理_一般只要能保存下頭信息即可    proxy_buffers 16k;       

26、#同上 告訴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;

27、0;       #緩存    proxy_temp_path和proxy_cache_path必須在同一個(gè)分區(qū)    proxy_temp_path /data2/proxy_temp_path;    #該指令用于設(shè)置緩存文件的存放路徑,設(shè)置緩存區(qū)名稱為cache_one ,內(nèi)存緩存空間大小為200M,自動(dòng)清除超過1天沒有被訪問的緩存數(shù)據(jù),硬盤緩存空間大小為30GB    proxy_cache_path /data2/p

28、roxy_cache_path levels=1:2 keys_zone=cache_one:2000m inactive=1d max_size=30g;            #include指令,使用此指令,可以包含任何你想要包含的配置文件,支持文件名匹配。    #include vhosts/*.conf;        upstream php_server_pool   

29、    #weight=NUMBER 設(shè)置服務(wù)器的權(quán)重,權(quán)重?cái)?shù)高被分配訪問數(shù)越高,默認(rèn)權(quán)重1.        #max_fails=NUMBER在參數(shù)fail_timeout指定的時(shí)間內(nèi)對(duì)后端服務(wù)器請(qǐng)求失敗的次數(shù),如果檢測(cè)到后端服務(wù)器無法連接及發(fā)生服務(wù)器錯(cuò)誤(404錯(cuò)誤除外),則標(biāo)記為失敗。默認(rèn)值為1.設(shè)置為0這關(guān)閉這項(xiàng)檢查        #fail_timeout=TIME在經(jīng)歷參數(shù)max_fails設(shè)置的失敗次數(shù)后,暫停的時(shí)間 &#

30、160;      #down標(biāo)記服務(wù)器為永久離線狀態(tài),用于ip_hash指令        #backup僅僅在非backup服務(wù)器全部繁忙的時(shí)候才啟動(dòng)                #upstream模塊擁有以下變量:        #    $upstream_addr:處理請(qǐng)求的u

31、pstream服務(wù)器地址        #    $upstream_status:upstream服務(wù)器的應(yīng)答狀態(tài)        #    $upstream_response_time:Upstream服務(wù)器響應(yīng)時(shí)間(毫秒),多個(gè)響應(yīng)以逗號(hào)和冒號(hào)分隔。        #    $upstream_http_$HEADER:任

32、意的HTTP協(xié)議頭信息,例如:$upstream_http_host                server 0:80 weight=1 max_fails=2 fail_timeout=30s;        server 1:80 weight=1 max_fails=2 fail_timeout=30s;      

33、;  server 2:80 weight=1 max_fails=2 fail_timeout=30s;            upstream message_server_pool        #ip_hash指令能夠?qū)⒛硞€(gè)客戶端IP的請(qǐng)求通過哈希算法定位到同一臺(tái)后端服務(wù)器。但無法保證后端服務(wù)器的負(fù)載均衡,所以建議后端服務(wù)器能做到session共享來代替nginx的ip_hash方式。  

34、;      #且如果后端服務(wù)器有時(shí)要從Nginx負(fù)載均衡中摘除一段時(shí)間,你必須將其標(biāo)記為“down”        #ip_hash;        server 3:3245;        server 4:3245 down;          &

35、#160; upstream bbs_server_pool        server 5:80 weight=1 max_fails=2 fail_timeout=30s;        server 6:80 weight=1 max_fails=2 fail_timeout=30s;        server 7:80 weight=1 ma

36、x_fails=2 fail_timeout=30s;            #第一個(gè)虛擬主機(jī),反向代理php_server_pool這組服務(wù)器    server            #該指令用于設(shè)置虛擬主機(jī)監(jiān)聽的服務(wù)器地址和端口號(hào)。        #listen:8080;  

37、0;     #listen 8000;        #listen *:8000;        #listen localhost:8000;        listen 80;        server_name ;          &#

38、160;     #SSL加密瀏覽        ssl on        ssl_certificate .crt;        ssl_certificate_key .key;                location /  

39、0;                 #限制下載速度256KB/秒            limit_rate 256k;            #如果后端的服務(wù)器返回502、504、執(zhí)行超時(shí)等錯(cuò)誤,自動(dòng)將請(qǐng)求轉(zhuǎn)發(fā)到upstream負(fù)載均衡池中的另一臺(tái)服務(wù)器,實(shí)現(xiàn)故障轉(zhuǎn)移  &#

40、160;         proxy_next_upstream http_502  http_504 error timeout invalid_header;            proxy_pass http:/php_server_pool;            proxy_set_header Host ;  &#

41、160;         proxy_set_header X-Forwarded-For $remote_addr;                        access_log /data1/logs/_access.log;             

42、;       #第二個(gè)虛擬主機(jī),反向代理php_server_pool這組服務(wù)器    server            listen 80;        server_name ;                #訪問  

43、      location /                    proxy_pass http:/message_server_pool;            proxy_set_header Host $host;         

44、60;              #訪問除了/message/之外的        location /message/                    #DNS解析服務(wù)器的IP地址,可以在IE 工具-Internet選項(xiàng)-連接-局域網(wǎng)設(shè)置-代理服務(wù)器 中設(shè)置代理服務(wù)器IP地址和端口

45、            resolver ;            #該指令用于設(shè)置被代理服務(wù)器端口或套接字,以及URI            proxy_pass http:/php_server_pool;          

46、60; #該指令可以設(shè)置哪些從后端服務(wù)器傳送過來的文件被Nginx存儲(chǔ)。on保持文件與alias或root指令設(shè)置的目錄一致,參數(shù)off不存儲(chǔ)文件            #proxy_store /data/www$original_uri;            proxy_store on;            #該指令用

47、于指定創(chuàng)建文件和目錄的權(quán)限            proxy_store_access user:rw group:rw all:r;            #指定一個(gè)本地目錄來緩沖較大的代理請(qǐng)求            proxy_temp_path /data/temp;     

48、60;      #該指令用于在URL和文件系統(tǒng)路徑之間實(shí)現(xiàn)映射。            alias /data/www;            #該指令允許重新定義或添加Header行道轉(zhuǎn)發(fā)給被代理服務(wù)器的請(qǐng)求信息中,它的值可以是文本,也可以是變量,或者是文本和變量的組合。            #使用$host變量,它的值相當(dāng)于服務(wù)器的主機(jī)名(如果使用域名訪問,則該值為域名;如果使用IP訪問,則該值為IP)。此外可以將主機(jī)名和被代理服務(wù)器的端口一起傳遞  $host:$proxy_port            proxy_set_header Host $host;           

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論