成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Nginx 配置文件詳解

fjcgreat / 865人閱讀

摘要:每個(gè)打開文件描述符的最大數(shù)量限制。多長(zhǎng)時(shí)間檢查一次緩存的有效信息指令中的參數(shù)時(shí)間內(nèi)文件的最少使用次數(shù),如果超過這個(gè)數(shù)字,文件描述符一直是在緩存中打開的。如果沒有匹配的,則默認(rèn)使用配置文件中第一個(gè)。

頂級(jí)配置
#定義 Nginx 運(yùn)行的用戶和用戶組
user nginx;

#進(jìn)程文件
pid /var/run/nginx.pid;

#錯(cuò)誤日志位置和級(jí)別,debug、info、notice、warn、error、crit
error_log  /var/log/nginx/error.log warn;

#Nginx worker 的進(jìn)程數(shù),一般可設(shè)置為可用的CPU內(nèi)核數(shù)。
worker_processes 8;

#每個(gè) worker 打開文件描述符的最大數(shù)量限制。理論值應(yīng)該是最多打開文件數(shù)(系統(tǒng)的值ulimit -n)與 nginx 進(jìn)程數(shù)相除,但是 nginx 分配請(qǐng)求并不均勻,所以建議與ulimit -n的值保持一致。
worker_rlimit_nofile 65535;

修改系統(tǒng)文件打開數(shù)量限制:

sudo sh -c ulimit -HSn 65535 //臨時(shí)修改

重啟后永久生效,則需要設(shè)置修改:

sudo vim /etc/security/limits.conf

在文件尾部添加:

* soft nofile 200000
* hard nofile 200000
Events 模塊
events {
    #設(shè)置一個(gè)worker進(jìn)程同時(shí)打開的最大連接數(shù)
    worker_connections 2048;

    #告訴nginx收到一個(gè)新連接通知后接受盡可能多的連接
    multi_accept on;

    #設(shè)置用于復(fù)用客戶端線程的輪詢方法。如果你使用Linux 2.6+,你應(yīng)該使用epoll。如果你使用*BSD,你應(yīng)該使用kqueue。
    use epoll;
}
HTTP 模塊
http {
    #隱藏 Nginx 的版本號(hào),提高安全性。
    server_tokens 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ù)載。
    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è)定
    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)閉日志,提高性能
    access_log /var/log/nginx/access.log main;


    #連接超時(shí)時(shí)間,單位是秒
    keepalive_timeout 120;

    #讀取HTTP頭部的超時(shí)時(shí)間,默認(rèn)值 60??蛻舳伺c服務(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; 

    #include 是一個(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 /etc/nginx/mime.types;

    #設(shè)置文件使用的默認(rèn)的MIME-type
    default_type text/html;

    #默認(rèn)編碼
    charset UTF-8;

    #該模塊可以讀取預(yù)先壓縮的gz文件,這樣可以減少每次請(qǐng)求進(jìn)行g(shù)zip壓縮的CPU資源消耗。該模塊啟用后,nginx首先檢查是否存在請(qǐng)求靜態(tài)文件的gz結(jié)尾的文件,如果有則直接返回該gz文件內(nèi)容。
    gzip_static off;  

    #開啟 gzip 壓縮。
    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è)置允許壓縮的頁(yè)面最小字節(jié)數(shù),頁(yè)面字節(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)過多長(zhǎng)時(shí)間文件沒被請(qǐng)求后刪除緩存。
    open_file_cache max=65535 inactive=30s;

    #多長(zhǎng)時(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;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
SERVER 模塊
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.test.com test.com;
    root /user/share/nginx/html/test;

    #404頁(yè)面配置
    error_page   404   /404.html;

    #配置 ssl,有需要時(shí)開啟。
    ssl on;
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
        index   index.html index.php;
    }

    #圖片緩存時(shí)間設(shè)置
    location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
        expires 10d;
    }

    #JS和CSS緩存時(shí)間設(shè)置
    location ~ .*.(js|css)?$ {
        expires 1h;
    }

    location ~ [^/].php(/|$) {
        fastcgi_index   index.php;
        #開啟 PATH_INFO 支持,作用就是把參數(shù)按照給定的正則表達(dá)式分割成 $fastcgi_script_name 和 $fastcgi_path_info。
        #例如:請(qǐng)求 index.php/id/1 不加此行配置時(shí),fastcgi_script_name 是 /index.php/id/1,fastcgi_path_info 是空。
        #加上之后,fastcgi_script_name 是 index.php,fastcgi_path_info 是 /id/1
        fastcgi_split_path_info ^(.+.php)(.*)$;

        #此值即是 PHP 中 $_SERVER["SCRIPT_FILENAME"] 的值
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param   PATH_INFO               $fastcgi_path_info;
        fastcgi_param   PATH_TRANSLATED $document_root$fastcgi_path_info;

        #指定FastCGI服務(wù)器監(jiān)聽端口與地址。須和 PHP-FPM 的設(shè)置相同。
        #fastcgi_pass   127.0.0.1:9000;
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        include fastcgi_params;
    }
}
參考資料

1、http://nginx.org/en/docs/
2、http://www.oschina.net/translate/nginx-setup
3、http://www.ha97.com/5194.html

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39152.html

相關(guān)文章

  • nginx配置參數(shù)詳解及django框架下的nginx和uwsgi的搭建

    摘要:于年發(fā)布,聚焦于高性能,高并發(fā)和低內(nèi)存消耗問題。二服務(wù)的啟停控制在講解配置文件參數(shù)前,讓我們先來了解一下的啟停操作吧。在講解配置項(xiàng)之前,讓我們先了解一下各個(gè)塊的作用。配置最大連接數(shù)設(shè)置允許每個(gè)同時(shí)開啟的最大連接數(shù),默認(rèn)值。 一、nginx簡(jiǎn)介、 ??nginx(發(fā)音engine x)是俄羅斯軟件工程師Igor Sysoev開發(fā)的免費(fèi)開源web服務(wù)器軟件。nginx于2004年發(fā)布,聚焦...

    snowLu 評(píng)論0 收藏0
  • 從一份配置清單詳解Nginx服務(wù)器配置

    摘要:在本文中,我們繼續(xù)延續(xù)前文,從前文給出的一份示例配置清單開始,詳解一下服務(wù)器的各種配置指令的作用和用法。是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接指令格式該指令默認(rèn)為狀態(tài),意指每個(gè)一次只能接收一個(gè)新到達(dá)的網(wǎng)絡(luò)連接。 本文已獲得原作者CodeSheep授權(quán)。showImg(https://segmentfault.com/img/remote/1460000015646704); 概述 在前面《Ngi...

    Achilles 評(píng)論0 收藏0
  • 從一份配置清單詳解Nginx服務(wù)器配置

    摘要:在本文中,我們繼續(xù)延續(xù)前文,從前文給出的一份示例配置清單開始,詳解一下服務(wù)器的各種配置指令的作用和用法。是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接指令格式該指令默認(rèn)為狀態(tài),意指每個(gè)一次只能接收一個(gè)新到達(dá)的網(wǎng)絡(luò)連接。 本文已獲得原作者CodeSheep授權(quán)。showImg(https://segmentfault.com/img/remote/1460000015646704); 概述 在前面《Ngi...

    Fourierr 評(píng)論0 收藏0
  • 從一份配置清單詳解Nginx服務(wù)器配置

    摘要:在本文中,我們繼續(xù)延續(xù)前文,從前文給出的一份示例配置清單開始,詳解一下服務(wù)器的各種配置指令的作用和用法。是否允許同時(shí)接收多個(gè)網(wǎng)絡(luò)連接指令格式該指令默認(rèn)為狀態(tài),意指每個(gè)一次只能接收一個(gè)新到達(dá)的網(wǎng)絡(luò)連接。 showImg(https://segmentfault.com/img/remote/1460000015385948); 概述 在前面《Nginx服務(wù)器開箱體驗(yàn)》 一文中我們從開箱...

    kevin 評(píng)論0 收藏0
  • Nginx基礎(chǔ)篇(2)- Nginx基本配置文件和變量詳解

    摘要:基本配置文件和變量詳解基本配置文件運(yùn)行的用戶進(jìn)程數(shù),建議設(shè)置為等于總核心數(shù)。允許客戶端請(qǐng)求的最大單文件字節(jié)數(shù)。如果主體超過緩沖區(qū)大小,則完整主體或其一部分將寫入臨時(shí)文件。該指令在配置的,和區(qū)塊使用。 Nginx基本配置文件和變量詳解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx運(yùn)行的用戶 user nginx; # nginx進(jìn)程數(shù),建議設(shè)置為等于C...

    TZLLOG 評(píng)論0 收藏0
  • Nginx基礎(chǔ)篇(2)- Nginx基本配置文件和變量詳解

    摘要:基本配置文件和變量詳解基本配置文件運(yùn)行的用戶進(jìn)程數(shù),建議設(shè)置為等于總核心數(shù)。允許客戶端請(qǐng)求的最大單文件字節(jié)數(shù)。如果主體超過緩沖區(qū)大小,則完整主體或其一部分將寫入臨時(shí)文件。該指令在配置的,和區(qū)塊使用。 Nginx基本配置文件和變量詳解 1. 基本配置文件 /etc/nginx/nginx.conf # nginx運(yùn)行的用戶 user nginx; # nginx進(jìn)程數(shù),建議設(shè)置為等于C...

    hss01248 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<