日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx配置文件讲解(二)

發布時間:2025/4/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx配置文件讲解(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?原文:http://www.blogjava.net/xiaomage234/archive/2011/09/08/358247.html

配置環境:

三臺CentOS5.3,一臺做nginx代理,2臺apache做頁面測試。apache端口改為:8080,nginx使用80口接收客戶請求

yum -y install pcre-devel openssl openssl-devel ? ? ? ? ? ? ? ? ? //安裝包,否則編譯時候出錯

#useradd ?www

#groupadd ?www

#usermod -g www www ? ? ? ? //設置nginx的用戶和組

#tar ?xzvf ?pcre-7.8.tar.gz

#./configure

#make ; make install ? ? ? ? ? ? ? ?//安裝pcre讓nginx支持rewrite重寫方便以后所需

[root@localhost tar]# cd nginx-0.7.16/

[root@localhost nginx-0.7.16]# ./configure ?--user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

?--with-http_stub_status_module:這個模塊用于獲取nginx自上次啟動以來的工作狀態,非核心模塊

--with-http_ssl_module ? ? ? ? ? ? ? : 把ssl編譯進去, 僅僅指定openssl庫的源代碼路徑還是不夠的

[root@localhost nginx-0.7.16]#make ?; meke install

#cd ? /usr/local/nginx/conf/nginx.conf

#vi ?nginx.conf

user ?www www; ? ? ? ? ? ? ? ? ? ? ? //設置用戶和組

worker_processes ?4; ? ? ? ? ? ? //生成進程數,等于CPU總核數兩倍

?

error_log ?/data1/logs/nginx_error.log crit; ? ? ?//錯誤日志路徑,錯誤日志可選項為:【debug ?info ?notice ?warn ?error ? crit】

?

pid ? ? ? ?/usr/local/nginx/logs/nginx.pid; ? ? ? ? ? ? ?//PID路徑

worker_rlimit_nofile 51200; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //指定文件描述符數量

?

events {

? ? use epoll; ? ? ? ? ? ? ? //使用網絡I/O模型

? ? worker_connections ?51200; ? ? ? ? ? ?//允許連接數,文件描述符

}

?

?

http

?{

? ? include ? ? ? mime.types; ? ? ? ? ? //文件類型

? ? default_type ?application/octet-stream; ? ? ? ? //默認文件類型

? ? charset ?UTF-8 ? ? ? ? ? ? ? ? ? ? ? //語言類型

? ? server_names_hash_bucket_size 128; ? ? ? ? ? ? ? //根據CPU的cache來設定

? ? client_header_buffer_size 4; ? ? ? ? ?//記錄緩存4k

? ? large_client_header_buffers 4 8k; ? ? ?//如果4k不夠,用8k

?

? ? sendfile ? ? ? ?on; ? ? ? ? //指定nginx是否調用sendfile函數(zero copy方式)來輸出文件,普通應用必須設為on,對于普通文件用on。如果進行下載I/O負載應用,設置為off,以平衡磁盤磁盤和網絡I/O處理速度。

? ? #tcp_nopush ? ? on; ? ? ?//允許或禁止使用socket的TCP_NOPUSH(on freebsd或TCP_COR(on ?linux),此選擇僅僅在使用sendfile時候可用,

?

? ? keepalive_timeout ?65; ? ? ? ? ? ?//長連接超時時間

? ? tcp_nodelay on;

? ? fastcgi_connect_timeout 300;

? ? fastcgi_send_timeout 300;

? ? fastcgi_read_timeout 300;

? ? fastcgi_buffer_size 64k;

? ? fastcgi_buffers 4 64k;

? ? fastcgi_busy_buffers_size 128k;

? ? fastcgi_temp_file_write_size 128k;

?

? ?#開啟gzip壓縮,用于支持在線實時壓縮輸出數據流

? ? gzip on; ? ? ? ? ? ? ? ? ? ? ? ? ?//off關閉或者on開啟gzip功能

? ? gzip_min_length 1k; ?//設置允許壓縮最小字節數,0表示多大都壓,最好設置大于1k,小于1k越壓越大

? ? gzip_buffers 4 16k; ? ? ? ?//系統獲取幾個單位的緩存,用于存儲gzip壓縮結果數據流。4 4k 代表以4k為單位,按照原始數據大小以4k為單位的4倍申請內存。 4 8k 代表以8k為單位,按照原始數據大小以8k為單位的4倍申請內存,如果沒有設置,默認值是申請跟原始數據相同大小的內存空間去存儲gzip壓縮結果。

? ? gzip_http_version 1.1; ? ?//判斷http協議版本,是否支持壓縮,否則用戶看到亂碼。默認即可,大部分都得支持

? ? gzip_comp_level 2; ? ? //gzip壓縮比,1 壓縮比最小處理速度最快,9 壓縮比最大但處理最慢

? ? gzip_types text/plain application/x-javascript text/css application/xml; ? ? //默認nginx是開啟gzip壓縮,但是只針對html文件押送 ?gzip_types ? ? ? text/plain application/x-javascript text/css text/html application/xml text/javascript; ?在nginx的gzip的gzip_types加上

? ? gzip_vary on; ? //和http頭有關系,加個vary頭,給代理服務器用的,有的瀏覽器支持壓縮,有的不支持,所以避免浪費不支持的也壓縮,所以根據客戶端的HTTP頭來判斷,是否需要壓縮。

?

? ? client_max_body_size 50m; ? ? ? ? ? ? //允許客戶端請求的最大單個文件字節數

? ? client_body_buffer_size 128k; ? ? ? ?//緩沖區代理用戶端請求的最大字節數,可以理解先保存到本地在穿給用戶

? ? proxy_connect_timeout 600; ? ? ? ?//和后端服務器連接的超時時間,發起握手等候相應超時時間

? ? proxy_read_timeout 600; ? ? ? ? //連接成功后,等待后端服務器相應時間,已經進入后端的排隊之中等候處理

? ? proxy_send_timeout 600; ? ? ? ?//后端服務器數據回傳時間,在規定時間內服務器必須傳完所有數據

? ? proxy_buffer_size 16k; ? ? ? ?//只保存用戶頭信息一共nginx進行規則處理,用于緩存代理請求

? ? proxy_buffers ? ?4 32k; ? ? //告訴nginx保存單個用的幾個Buffer最大用多大空間

? ? proxy_busy_buffers_size 64k; ? //如果系統很忙可以申請更大的proxy_buffers,官方推薦 *2

? ? proxy_temp_file_write_size 64k; ? ?//proxy緩存臨時文件大小

?

? ? upstream http_server_pool {

? ? ? ? server 192.168.1.2:8080 weight=4 max_fails=2 fail_timeout=30s;

? ? ? ? server 192.168.1.3:8080 weight=2 max_fails=2 fail_timeout=30s;

? ? ?} ? ? ? ? ?//設置地址池,后端2臺服務器

?

? ? server ? ? ? ? ?//第一個虛擬主機,反向代理http_server_pool這組服務器

? ? ? {

? ? ? ? listen ? ? ? 80; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//監聽端口

? ? ? ? server_name ?www.xiao.com; ? ? ? ? ? //主機名稱

?

? ? ? ? location /

? ? ? ? {

? ? ? ? ? ? ? ? proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; //http://www.2tutu.com/post/2008/631.html ? ? ? ? //后端服務器返回500 503 404錯誤,自動請求轉發到upstream池中另一臺服務器

? ? ? ? ? ? ? ? proxy_pass http://http_server_pool;

? ? ? ? ? ? ? ? proxy_set_header Host www.xiao.com;

? ? ? ? ? ? ? ? proxy_set_header X-Forwarded-For ?$remote_addr;

? ? ? ? }

? ? ? ? access_log ?logs/www.xiao.com.access.log ?combined;

? ? ? ?}

? ? ? ?}

proxy_set_header Host www.xiao.com:

proxy_set_header ?Host ?$host :首先說明 proxy_set_header 指令在向反向代理的后端Web服務器發起請求時添加指定的 Header頭信息,后端web服務器有多個基于域名的虛擬主機時,通過頭信息Host,用于指定請求的域名,這樣后端web才能識別反向代理請求哪個虛擬主機處理。

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for :聯系下面PS中所寫,在后端web中就算加上$http_x_Forwarded_for這條,也得不到用戶的IP,所以在nginx反向代理添加Header頭信息 X-Forwarded-For在配合后端服務器日志文件的$http_x_Forwarded_for這條就可以獲得用戶的IP地址了。

?PS:假設Nginx作為Web服務器,nginx或Squid作為反向代理后,就不能獲取客戶端的真實IP地址了,由于在客戶端和Web增加了中間層,web沒有真實的IP,通過$remote_addr變量拿到是反向代理的IP,Web代理可以增加$http_x_Forwarded_for信息,用于記錄客戶端IP和原來客戶請求的服務器地址,在日志格式中加上即可。

? log_format ?main ? '$http_x_Forwarded_for '

? ? ? ? ? ? ? ? ? ? ? ?'$remote_addr - $remote_user [$time_local] "$request" '

? ? ? ? ? ? ? ? ? ? ? '$status $body_bytes_sent "$http_referer" '

? ? ? ? ? ? ? ? ? ? ? '"$http_user_agent" "$http_x_forwarded_for"';

? ? access_log ?/tmp/Nginx.access.log ?main; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //在后端Web里面加上這樣就可以了

upstream : nginx支持4種算法,下面一一介紹

1、 輪詢

每個請求按時間順序分配到不同的后端服務器了,后端服務器down掉,自動切除。

2、weight

設定服務器權值: weight=2

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? weight=4 ? ? ? ? ?服務器性能不均時候使用

3、 ip_hash

每個請求按訪問ip的hash結果分配,每個訪客有固定的后端服務器,可以解決session問題

4、 fair(第三方)

按后端服務器的響應時間來分配,響應時間短的優先分配

5、url_hash (第三方)

按訪問的url的hash結果分配,使每個url定向到同一個后端服務器,后端為緩存服務器比較有效。

以往的架構lvs或者dns輪詢,這樣雖然squid里面的均衡的,但是忽略了一點就是數據量,雖然每臺squid是均勻但是都是滿載的,重復的請求,會占用很多空間,在前面換上nginx在配上 url_hash,根據url分流后,每一個url會只存在一個squid上,每臺squid數據完全不同。http://edu.codepub.com/2010/0202/20282.php

upstream http_server { ? ? ? ? ? ? //定義負載均衡設備的Ip及設備狀態

  ip_hash;

   server 127.0.0.1:9090 down;

   server 127.0.0.1:8080 weight=2;

   server 127.0.0.1:6060;

   server 127.0.0.1:7070 backup;

  }

down : 當前的IP server暫時不參與負載,不進行反向代理

weight: 默認為1,weight越大,負載的權重越大

max_fails: 允許請求失敗的次數默認為1,當超過最大次數時,返回proxy_next_upstream模塊定義的錯誤。

fail_timeout : max_fails次失敗后,暫停的時間

backup: ?其它所有非backup機器down或者忙時候,請求backup機器,這臺機器壓力最輕

PS: nginx支持同時設置多組負載均衡,給不同的server使用

location:設置對URL進行匹配,比如 location ?/ ?, ?location ?/data 這兩個設置優先級,/ 下也可以,但是不如 /data下搜索更快,定位更準。

轉載于:https://blog.51cto.com/sndapk/990506

總結

以上是生活随笔為你收集整理的nginx配置文件讲解(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日日热 | 亚洲精品第一页 | 日韩欧美在线观看视频 | 亚洲深夜 | 国产精品亚洲欧美 | 人成午夜| 26uuu精品一区二区在线观看 | 大陆av在线播放 | 成人女同av免费观看 | 黄色片子看看 | 国产成人无码www免费视频播放 | 污视频在线观看网址 | 欧美大片在线观看 | 久久亚洲AV无码精品 | 污视频在线观看免费 | 欧美69囗交视频 | 特级西西人体 | www..com色 | 自拍av在线| 一亲二脱三插 | 老司机在线观看视频 | 国自产拍偷拍精品啪啪一区二区 | 黄色免费在线网址 | 亚洲欧美日本在线观看 | 长篇高h肉爽文丝袜 | 国内特级毛片 | 黄污视频网站 | 99午夜视频| 丰满人妻综合一区二区三区 | av一二三区| 精品丰满少妇一区二区三区 | 国产对白羞辱绿帽vk | 在线精品小视频 | 伊人av综合 | 天天干夜夜拍 | 伊人久久大香线蕉综合网站 | 茄子视频色 | 8ppav| 欧美日韩色 | 99黄色片 | 一级特黄aa大片欧美 | 国产色在线观看 | 超碰狠狠干| 欧美一区三区二区在线观看 | 日本熟妇乱子伦xxxx | 麻豆视频在线观看免费 | 国产精品我不卡 | 九九综合视频 | av免费片 | 欧美一级二级三级 | 波多野结衣视频一区 | 国产精品久久久久久久久久久久久久久久 | 91精品视频在线播放 | 亚洲美女毛片 | 99碰碰| 尤物视频在线免费观看 | 日本xxx在线观看 | 男男免费视频 | 98久久 | 中文字幕人妻一区二区三区 | 国产老熟女一区二区三区 | 黑人玩弄人妻一区二区绿帽子 | 在线免费av播放 | 九七av| 在线中文字幕播放 | 精品人妻午夜一区二区三区四区 | 日韩精品一区二区三区色欲av | 成年人看的羞羞网站 | 成人在线视频播放 | 亚洲电影中文字幕 | 精品视频第一页 | 国产黄页 | 欧美日韩国产精品成人 | 国产精品九九视频 | 东方av正在进入 | 男生草女生视频 | 3d动漫精品啪啪一区二区下载 | 国产女主播自拍 | 日韩欧美国产网站 | 久久久久久久美女 | 色先锋av | 国产盗摄一区二区 | 国内精品第一页 | 2018国产大陆天天弄 | 综合色99 | 免费黄色小视频网站 | av网址免费观看 | 91精品中文字幕 | 中文字幕无码人妻少妇免费 | 久久综合视频网 | 男人的天堂影院 | 色欧美片视频在线观看 | a级黄色小视频 | 欧美片17c07.com | 无码人妻丰满熟妇奶水区码 | 国产又爽又黄游戏 | 毛片网络 | 国产夫妻自拍小视频 | 91亚洲国产成人精品性色 |