Nginx配置註解

#指定Nginx Worker進程運行用戶以及用戶組
user  www www;

#指定了Nginx要開啓的進程數,通常幾個CPU就寫幾
worker_processes 2;

#錯誤日誌位置
error_log  logs/error.log;

#指定進程id的存儲文件位置
pid   logs/nginx.pid;

#指定單進程打開文件數,需與系統設定一致
worker_rlimit_nofile 65535;

events {
    #指定nginx工做模式,nginx主要的工做模式有select、poll、kqueue、epoll
    #其中select、poll是標準工做模式,kqueue、epoll爲高效工做模式,epoll用在Linux系統中,而kqueue用在BSD系統中
    use epoll;

    #指定單進程的最大鏈接數,即一個進程同時能處理1024個請求
    worker_connections  1024;
}


#HTTP部分
http {

    #指定配置文件所包含的文件
    include      mime.types;

    #指定默認類型爲二進制流,也就是當文件類型未定義時使用這種方式.
    #例如在沒有配置PHP環境時,Nginx是不予解析的,此時,用瀏覽器訪問PHP文件就會出現下載窗口
    default_type  application/octet-stream;

    #設定日誌格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

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

    #設置容許客戶端請求的最大的單個文件字節數
    client_max_body_size  20m;

    #指定來自客戶端請求頭的headerbuffer大小,若是自定義了消息頭或有更大的cookie,能夠在這裏增長緩衝大小
    client_header_buffer_size    16k;

    #指定客戶端請求中較大的消息頭的緩存最大數量和大小,4爲個數,32k爲大小,最大緩存爲4個32kb
    large_client_header_buffers  4 32k;

    #開啓高效傳輸模式
    sendfile    on;

    #tcp_nopush,tcp_nodelay設置on,防止網絡阻塞
    tcp_nopush    on;
    tcp_nodelay    on;

    #指定客戶端鏈接保持活動的超時時間
    keepalive_timeout  65;

    #指定客戶端請求頭讀取超時時間,若是超過這個時間,客戶端尚未發送任何數據,Nginx將返回「Request time out(408)」錯誤
    client_header_timeout  10;

    #指定客戶端請求主體讀取超時時間,若是超過這個時間客戶端尚未發送任何數據,Nginx將返回「Request time out(408)」錯誤
    client_body_timeout  10;

    #指定響應客戶端的超時時間。這個超時僅限於兩個鏈接活動之間的時間,若是超過這個時間,客戶端沒有任何活動,Nginx將會關閉鏈接
    send_timeout        10;

    #開啓gzip壓縮,實時壓縮輸出數據流
    gzip  on;

    #設置容許壓縮的頁面最小字節數
    gzip_min_length  1k;

    #指定內存空間來存貯壓縮結果,這裏指定4個單位爲16k的內存來存儲壓縮結果,即總大小爲64k
    gzip_buffers    4  16k;

    #指定識別HTTP協議版本,默認是1.1
    gzip_http_version  1.1;

    #指定gzip壓縮比,1 壓縮比最小,處理速度最快;9 壓縮比最大,傳輸速度快,但處理最慢,也比較消耗CPU資源
    gzip_comp_level  2;

    #指定壓縮的類型,不管是否指定,「text/html」類型老是會被壓縮
    gzip_types  text/plain application/x-javascript text/css application/xml;

    #該選項開啓可讓前端的緩存服務器緩存通過gzip壓縮的頁面,例如,用Varnish緩存通過Nginx壓縮的數據
    gzip_vary  on;

    #隱藏Nginx版本號
    server_tokens off;

    #SERVER部分
    server {

        #指定Nginx監端口
        listen      8000;

        #用來指定IP或者域名
        server_name  localhost;

        #指定Nginx默認的字符集,只有utf-8支持中文字符
        charset utf-8;

        #指定訪問日誌的名稱及位置
        access_log  logs/host.access.log  main;

        #可有多個location
        location / {

            #指定網頁根目錄
            root /data/www/default.com;

            #設定默認首頁
            index  index.html index.htm;

            #Nginx默認是不容許列出整個目錄的,在server或location段裏添加上 autoindex on;來啓用目錄瀏覽。
            #開啓目錄瀏覽
            autoindex on ;

            #默認爲on,顯示出文件的確切大小,單位是bytes。
            #改成off後,顯示出文件的大概大小,單位是kB或者MB或者GB
            autoindex_exact_size off ;

            #默認爲off,顯示的文件時間爲GMT時間。
            #改成on後,顯示的文件時間爲文件的服務器時間
            autoindex_localtime on;
        }

        #開啓目錄瀏覽
        location /down/ {

            #訪問目錄
            alias /home/wwwroot/test/;

            autoindex on;
        }

        #指定錯誤頁面
        error_page 500 502 503 503   /50x.html;

        #定義錯誤頁面,若是是500錯誤,則把站點根目錄下的 50x.html 返給用戶
        location = /50x.html {
            root /data/www/www.error.com ;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        #配置PHP
        location ~ \.php$ {

            #指定網頁根目錄
            root           /data/www/default.com;

            #指定fastcgi的地址和端口
            fastcgi_pass   127.0.0.1:9000;

            #默認頁面
            fastcgi_index  index.php;

            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #配置fastcgi參數
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            #引入fastcgi參數
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #location ~ /\.ht {
        #    deny  all;
        #}

        #指定url中包含jsp或者?的所有轉發到192.168.0.10的80端口即tomcat處理
        location ~ (jsp|\?) {
            proxy_pass  http://192.168.0.10:80;

        }
    }


#站點server,eg: www.default.com
#可配置多個站點
server {

    listen      80;

    server_name  www.default.com;

    root        /data/www/www.default.com;

    index  index.php index.html index.htm;

    location / {
        root   /data/www/www.default.com;
    }

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {
        root   /data/www/www.error.com ;
    }
}

#多個站點配置引入
#conf.d/www.site.com conf.d/www.site2.com
include conf.d/*

#其餘說明

#針對單個域名請求作出單個鏈接超時的配置.
#好比些動態解釋和靜態解釋能夠根據業務的需求配置
#proxy_connect_timeout :後端服務器鏈接的超時時間_發起握手等候響應超時時間
#proxy_read_timeout:鏈接成功後_等候後端服務器響應時間_其實已經進入後端的排隊之中等候處理(也能夠說是後端服務器處理請求的時間)
#proxy_send_timeout :後端服務器數據回傳時間_就是在規定時間以內後端服務器必須傳完全部的數據
相關文章
相關標籤/搜索