<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    J2EE社區(qū)

    茍有恒,何必三更起五更眠;
    最無益,只怕一日曝十日寒.
    posts - 241, comments - 318, trackbacks - 0, articles - 16

    Nginx 配置文件詳解

    Posted on 2017-12-22 21:04 xcp 閱讀(966) 評(píng)論(0)  編輯  收藏
    #總統(tǒng)參見:https://segmentfault.com/a/1190000002789743 #定義 Nginx 運(yùn)行的用戶和用戶組 #user root(linux) #user nobody; #定義了nginx對(duì)外提供web服務(wù)時(shí)的worker進(jìn)程數(shù)。最優(yōu)值取決于許多因素,包括(但不限于)CPU核的數(shù)量、存儲(chǔ)數(shù)據(jù)的硬盤數(shù)量及負(fù)載模式。不能確定的時(shí)候,將其設(shè)置為可用的CPU內(nèi)核數(shù)將是一個(gè)好的開始(設(shè)置為“auto”將嘗試自動(dòng)檢測(cè)它)。 #一般可設(shè)置為可用的CPU內(nèi)核數(shù)。 #文檔不錯(cuò):http://blog.csdn.net/fireroll/article/details/15756745 worker_processes 4; #打開文件描述符的最大數(shù)量限制。如果沒設(shè)置的話,這個(gè)值為操作系統(tǒng)的限制。設(shè)置后你的操作系統(tǒng)和Nginx可以處理比“ulimit -a”更多的文件,所以把這個(gè)值設(shè)高,這樣nginx就不會(huì)有“too many open files”問題了。 worker_rlimit_nofile 65535; #錯(cuò)誤日志位置和級(jí)別,debug、info、notice、warn、error、crit、alert、emerg #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; error_log logs/error.log error; #指定主進(jìn)程文件存放地方 #pid logs/nginx.pid; events { #單個(gè)進(jìn)程最大連接數(shù)(最大連接數(shù)=連接數(shù)*進(jìn)程數(shù)) #如果設(shè)置了上面提到的worker_rlimit_nofile,我們可以將這個(gè)值設(shè)得很高。 #文檔不錯(cuò):http://blog.csdn.net/xifeijian/article/details/20956605 worker_connections 2048; #告訴nginx收到一個(gè)新連接通知后接受盡可能多的連接 multi_accept on; #設(shè)置用于復(fù)用客戶端線程的輪詢方法?!緎elect、poll、epoll和kqueue】 #https://www.cnblogs.com/linganxiong/p/5583415.html #use epoll; } http { #隱藏 Nginx 的版本號(hào),提高安全性。 server_tokens off; #是一個(gè)在當(dāng)前文件中包含另一個(gè)文件內(nèi)容的指令。這里我們使用它來加載文件擴(kuò)展名與文件類型映射表。nginx根據(jù)映射關(guān)系,設(shè)置http請(qǐng)求響應(yīng)頭的Content-Type值。當(dāng)在映射表找不到時(shí),使用nginx.conf中default-type指定的默認(rèn)值。 include mime.types; #設(shè)置文件使用的默認(rèn)的MIME-type default_type application/octet-stream; #默認(rèn)編碼 charset UTF-8; #日志格式設(shè)定 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; ##定義訪問日志,設(shè)置為 off 可以關(guān)閉日志,提高性能 Eccess_log logs/access.log main; Eccess_log logs/access.log main buffer=32k; access_log off; log_not_found off; #開啟高效文件傳輸模式,sendfile指令指定nginx是否調(diào)用sendfile函數(shù)來輸出文件,對(duì)于普通應(yīng)用設(shè)為 on,如果用來進(jìn)行下載等應(yīng)用磁盤IO重負(fù)載應(yīng)用,可設(shè)置為off,以平衡磁盤與網(wǎng)絡(luò)I/O處理速度,降低系統(tǒng)的負(fù)載。 #注意:如果圖片顯示不正常把這個(gè)改成off。 sendfile on; #是否開啟目錄列表訪問,默認(rèn)關(guān)閉。 autoindex off; #告訴 Nginx 在一個(gè)數(shù)據(jù)包里發(fā)送所有頭文件,而不一個(gè)接一個(gè)的發(fā)送 tcp_nopush on; #告訴 Nginx 不要緩存數(shù)據(jù),而是一段一段的發(fā)送--當(dāng)需要及時(shí)發(fā)送數(shù)據(jù)時(shí),就應(yīng)該給應(yīng)用設(shè)置這個(gè)屬性,這樣發(fā)送一小塊數(shù)據(jù)信息時(shí)就不能立即得到返回值。 #Nginx 默認(rèn)會(huì)始終工作在 tcp nopush 狀態(tài)下。但是當(dāng)開啟前面的 sendfile on; 時(shí),它的工作特點(diǎn)是 nopush的最后一個(gè)包會(huì)自動(dòng)轉(zhuǎn)轉(zhuǎn)換到 nopush off。 #為了減小那200ms的延遲,開啟 nodelay on; 將其很快傳送出去。結(jié)論就是 sendfile on; 開啟時(shí),tcp_nopush 和 tcp_nodelay 都是on 是可以的。 tcp_nodelay on; #連接超時(shí)時(shí)間,單位是秒 #keepalive_timeout 0; keepalive_timeout 65; #讀取HTTP頭部的超時(shí)時(shí)間,默認(rèn)值 60。 #客戶端與服務(wù)器建立連接后將開始接收HTTP頭部,在這個(gè)過程中,如果在一個(gè)時(shí)間間隔(超時(shí)時(shí)間)內(nèi)沒有讀取到客戶端發(fā)來的字節(jié),則認(rèn)為超時(shí),并向客戶端返回408 ("Request timed out")響應(yīng)。 #client_header_timeout 60; #默認(rèn)值 60。與client_header_timeout相似,只是這個(gè)超時(shí)時(shí)間只在讀取HTTP包體時(shí)才有效。 #client_body_timeout 10; #發(fā)送響應(yīng)的超時(shí)時(shí)間,默認(rèn)值 60。即Nginx服務(wù)器向客戶端發(fā)送了數(shù)據(jù)包,但客戶端一直沒有去接收這個(gè)數(shù)據(jù)包。如果某個(gè)連接超過send_timeout定義的超時(shí)時(shí)間,那么Nginx將會(huì)關(guān)閉這個(gè)連接。 #send_timeout 60; #連接超時(shí)后將通過向客戶端發(fā)送RST包來直接重置連接。這個(gè)選項(xiàng)打開后,Nginx會(huì)在某個(gè)連接超時(shí)后,不是使用正常情形下的四次握手關(guān)閉TCP連接,而是直接向用戶發(fā)送RST重置包,不再等待用戶的應(yīng)答,直接釋放Nginx服務(wù)器上關(guān)于這個(gè)套接字使用的所有緩存(如TCP滑動(dòng)窗口)。相比正常的關(guān)閉方式,它使得服務(wù)器避免產(chǎn)生許多處于FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT狀態(tài)的TCP連接。注意,使用RST重置包關(guān)閉連接會(huì)帶來一些問題,默認(rèn)情況下不會(huì)開啟。 #reset_timedout_connection off; #要限制連接,必須先有一個(gè)容器對(duì)連接進(jìn)行計(jì)數(shù),"zone=" 是給它一個(gè)名字,可以隨便叫,這個(gè)名字要跟下面的 limit_conn 一致。$binary_remote_addr 用二進(jìn)制來儲(chǔ)存客戶端的地址,1m 可以儲(chǔ)存 32000 個(gè)并發(fā)會(huì)話。 #limit_conn_zone $binary_remote_addr zone=addr:5m; #給定的key設(shè)置最大連接數(shù)。這里key是addr,我們?cè)O(shè)置的值是100,也就是說我們?cè)试S每一個(gè)IP地址最多同時(shí)打開有100個(gè)連接。 #limit_conn addr 100; #對(duì)每個(gè)連接限速100k。這如果一個(gè)IP允許兩個(gè)并發(fā)連接,那么這個(gè)IP就是限速200K。 #limit_rate 100k; #該模塊可以讀取預(yù)先壓縮的gz文件,這樣可以減少每次請(qǐng)求進(jìn)行g(shù)zip壓縮的CPU資源消耗。該模塊啟用后,nginx首先檢查是否存在請(qǐng)求靜態(tài)文件的gz結(jié)尾的文件,如果有則直接返回該gz文件內(nèi)容。 gzip_static off; #啟用Gizp壓縮 #gzip on; # 禁用客戶端為 IE6 時(shí)的 gzip功能。 gzip_disable "msie6"; #Nginx做為反向代理的時(shí)候啟用??蛇x值:off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any gzip_proxied any; #設(shè)置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取。建議設(shè)置成大于1k的字節(jié)數(shù),小于1k可能會(huì)越壓越大。 gzip_min_length 1024; #設(shè)置數(shù)據(jù)的壓縮等級(jí)。這個(gè)等級(jí)可以是1-9之間的任意數(shù)值,9是最慢但是壓縮比最大的。 gzip_comp_level 5; #設(shè)置系統(tǒng)獲取幾個(gè)單位的緩存用于存儲(chǔ)gzip的壓縮結(jié)果數(shù)據(jù)流。 例如 4 4k 代表以4k為單位,按照原始數(shù)據(jù)大小以4k為單位的4倍申請(qǐng)內(nèi)存。如果沒有設(shè)置,默認(rèn)值是申請(qǐng)跟原始數(shù)據(jù)相同大小的內(nèi)存空間去存儲(chǔ)gzip壓縮結(jié)果。 gzip_buffers 4 16k; #設(shè)置需要壓縮的數(shù)據(jù)格式。Nginx默認(rèn)只對(duì)text/html進(jìn)行壓縮。 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; #為打開文件指定緩存,默認(rèn)是沒有啟用的,max 指定緩存數(shù)量,建議和打開文件數(shù)一致,inactive 是指經(jīng)過多長時(shí)間文件沒被請(qǐng)求后刪除緩存。 open_file_cache max=65535 inactive=30s; #多長時(shí)間檢查一次緩存的有效信息 open_file_cache_valid 30s; #open_file_cache指令中的inactive參數(shù)時(shí)間內(nèi)文件的最少使用次數(shù),如果超過這個(gè)數(shù)字,文件描述符一直是在緩存中打開的。出現(xiàn) Last-Modified 不變的情況,就是因?yàn)楫?dāng)nginx對(duì)一個(gè)靜態(tài)文件緩存后,如果30s內(nèi)還在訪問它,那么它的緩存就一直存在,直到30s內(nèi)你不訪問了為止。 open_file_cache_min_uses 2; #是否記錄cache錯(cuò)誤 open_file_cache_errors on; #服務(wù)器集群名字(supxx.com) <、weight(權(quán)重):指定輪詢幾率,weight和訪問比率成正比,用于后端服務(wù)器性能不均的情況。例:server 10.0.0.77 weight=5; >、ip_hash(訪問ip):每個(gè)請(qǐng)求按訪問ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問一個(gè)后端服務(wù)器,可以解決session的問題。 #upstream favresin{ # ip_hash; # server 10.0.0.11:8080; #} &、fair(第三方):按后端服務(wù)器的響應(yīng)時(shí)間來分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。與weight分配策略類似。 #upstream favresin{ # server 10.0.0.10:8080; # fair; #} *、url_hash(第三方): 按訪問url的hash結(jié)果來分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器,后端服務(wù)器為緩存時(shí)比較有效。 # 注意:在upstream中加入hash語句,server語句中不能寫入weight等其他的參數(shù),hash_method是使用的hash算法。 #upstream resinserver{ # server 10.0.0.10:7777; # shash $request_uri; # hash_method crc32; #} # #upstream還可以為每個(gè)設(shè)備設(shè)置狀態(tài)值,這些狀態(tài)值的含義分別如下: #down 表示單前的server暫時(shí)不參與負(fù)載. #weight 默認(rèn)為1.weight越大,負(fù)載的權(quán)重就越大。 #max_fails :允許請(qǐng)求失敗的次數(shù)默認(rèn)為1.當(dāng)超過最大次數(shù)時(shí),返回proxy_next_upstream 模塊定義的錯(cuò)誤. #fail_timeout : max_fails次失敗后,暫停的時(shí)間。 #backup: 其它所有的非backup機(jī)器down或者忙的時(shí)候,請(qǐng)求backup機(jī)器。所以這臺(tái)機(jī)器壓力會(huì)最輕。 #upstream bakend{ #定義負(fù)載均衡設(shè)備的Ip及設(shè)備狀態(tài) # ip_hash; # server 10.0.0.11:9090 down; # server 10.0.0.11:8080 weight=2; # server 10.0.0.11:6060; # server 10.0.0.11:7070 backup; # server 10.0.0.11:5050 weight=10 max_fails=3 fail_timeout=30s; #} upstream supxx.com { server 127.0.0.1:8080 weight=1; server 127.0.0.1:9090 weight=2; fair; } #當(dāng)前的Nginx的配置 server { #監(jiān)聽端口,nginx 會(huì)根據(jù)請(qǐng)求的 HOST 來決定使用哪個(gè) SERVER 段的配置。如果沒有匹配的 server_name,則默認(rèn)使用配置文件中第一個(gè)。加上 default_server 則可以以指定沒有匹配時(shí)的默認(rèn)規(guī)則。 #listen 80; listen 80 default_server; #域名可以有多個(gè),用空格隔開 server_name www.supxx.com www.supxx.cn; #charset koi8-r; Eccess_log logs/host.access.log main; #配置 ssl,有需要時(shí)開啟。 #ssl on; #ssl_certificate /etc/nginx/ssl/server.crt; #ssl_certificate_key /etc/nginx/ssl/server.key; #服務(wù)映射 #http://blog.csdn.net/heiyueya/article/details/70149270 #location的匹配種類有哪些? #格式[空格|=|~|~*|^~|!~|!~*]/uri/{}] #=開頭表示精確匹配 #~開頭表示區(qū)分大小寫的正則匹配 #~*開頭表示不區(qū)分大小寫的正則匹配 #^~ 開頭表示uri以某個(gè)常規(guī)字符串開頭,理解為匹配 url路徑即可。nginx不對(duì)url做編碼,因此請(qǐng)求為/static/20%/aa,可以被規(guī)則^~ /static/ /aa匹配到(注意是空格)。 #!~和!~*分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹配 的正則 #/通用匹配, 如果沒有其它匹配,任何請(qǐng)求都會(huì)匹配到 # #location搜索順序 #no優(yōu)先級(jí):(location =) > (location 完整路徑) > (location ^~ 路徑) > (location ~,~* 正則順序) > (location 部分起始路徑) > (/) <.首先匹配= >.其次匹配^~ &.再其次按照配置文件的順序進(jìn)行正則匹配、 *.最后是交給/進(jìn)行通用匹配 # #注意: #當(dāng)有匹配成功時(shí),立刻停止匹配,按照當(dāng)前匹配規(guī)則處理請(qǐng)求 #特別注意: 字符串匹配優(yōu)先搜索,但是只是記錄下最長的匹配 ( 如果 ^~ 是最長的匹配,則會(huì)直接命中,停止搜索正則 ),然后繼續(xù)搜索正則匹配,如果有正則匹配,則命中正則匹配,如果沒有正則匹配,則命中最長的字符串匹配. # # # #實(shí)際使用建議 #所以實(shí)際使用中,個(gè)人覺得至少有三個(gè)匹配規(guī)則定義,如下: #直接匹配網(wǎng)站根,通過域名訪問網(wǎng)站首頁比較頻繁,使用這個(gè)會(huì)加速處理,官網(wǎng)如是說。 #這里是直接轉(zhuǎn)發(fā)給后端應(yīng)用服務(wù)器了,也可以是一個(gè)靜態(tài)首頁 # 第一個(gè)必選規(guī)則 #location = / { # proxy_pass http://tomcat:8080/index #} # 第二個(gè)必選規(guī)則是處理靜態(tài)文件請(qǐng)求,這是nginx作為http服務(wù)器的強(qiáng)項(xiàng) # 有兩種配置模式,目錄匹配或后綴匹配,任選其一或搭配使用 #location ^~ /static/ { # root /webroot/static/; #} #location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ { # root /webroot/res/; #} #第三個(gè)規(guī)則就是通用規(guī)則,用來轉(zhuǎn)發(fā)動(dòng)態(tài)請(qǐng)求到后端應(yīng)用服務(wù)器 #非靜態(tài)文件請(qǐng)求就默認(rèn)是動(dòng)態(tài)請(qǐng)求,自己根據(jù)實(shí)際把握 #畢竟目前的一些框架的流行,帶.php,.jsp后綴的情況很少了 #location / { # proxy_pass http://tomcat:8080/ #} # # # # # # # # # location / { proxy_pass http://supxx.com; proxy_redirect default; } #圖片緩存時(shí)間設(shè)置 location ~* .*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 10d; } #JS和CSS緩存時(shí)間設(shè)置 location ~* .*.(js|css)?$ { expires 1h; } *04頁面配置 #error_page 404 /404.html; o00頁面設(shè)置 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }


    名稱: ?4C.ESL | .↗Evon
    口號(hào): 遇到新問題?先要尋找一個(gè)方案乄而不是創(chuàng)造一個(gè)方案こ
    mail: 聯(lián)系我


    主站蜘蛛池模板: 亚洲国产成人精品不卡青青草原| 在线涩涩免费观看国产精品| 自拍偷自拍亚洲精品第1页| 亚洲最大免费视频网| 四虎成人免费大片在线| 亚洲毛片免费视频| 无码人妻一区二区三区免费n鬼沢| 久久久久国产亚洲AV麻豆 | 亚洲一级特黄特黄的大片| 亚洲国产黄在线观看| 精品无码免费专区毛片| 深夜福利在线免费观看| 亚洲国产精品人人做人人爱| 久久不见久久见免费视频7| 午夜亚洲国产理论片二级港台二级 | 亚洲另类古典武侠| 亚洲精品专区在线观看| 黄色毛片免费在线观看| 亚洲免费在线观看视频| 亚洲精品无码高潮喷水在线| 在线观看永久免费视频网站| 亚洲精品免费视频| 无码的免费不卡毛片视频| 亚洲综合伊人久久综合| 手机在线毛片免费播放| 99久久综合精品免费| 四虎影视永久在线精品免费| 涩涩色中文综合亚洲| 亚洲一级二级三级不卡| 亚洲日韩人妻第一页| 日本免费福利视频| 999国内精品永久免费视频| 亚洲人成在线中文字幕| 亚洲va无码va在线va天堂| 亚洲免费观看网站| 中文字幕免费不卡二区| 国产无限免费观看黄网站| 亚洲丝袜美腿视频| 国产亚洲精品资在线| 国产精品99久久免费| 拍拍拍无挡视频免费观看1000|