1. 程式人生 > >nginx-1.12.1 伺服器的配置檔案

nginx-1.12.1 伺服器的配置檔案

nginx.conf

#使用的使用者和組
#user  nobody;
#指定工作衍生程序數(一般等於CPU的總核數或總核數的兩倍)
worker_processes  4;
#指定錯誤日誌存放的路徑,錯誤日誌的記錄級別可為debug,info,notice,warn,error,crit
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#指定pid檔案存放的路徑
#pid        logs/nginx.pid;

#指定檔案描述符的數量
#worker_rlimit_nofile 51200;

events {
    #使用的I/O模型,Linux系統推薦使用epoll模型,FreeBSD推薦使用kqueue模型
    #在我的Mac OSX 11系統中報錯 invalid event type "kueue"
    #use kueue; 
    #允許連線數
    worker_connections  1024;
}


http {
    #MIME檔案型別
    include       mime.types;
    default_type  application/octet-stream;

    #設定使用的字符集,如果一個網站有多種字符集,請不要隨便設定,應讓程式設計師在HTML程式碼中通過meta標籤進行設定
    #charset gb2312;


    #自定義一個日誌格式main(也可以寫在server各自的區間)
    #log_format name format [format ...] 
    #log_format 格式名稱(nginx提供了一個預設的combined日誌格式,name名稱不能重複) 格式規則
    #由於nginx是反向代理伺服器,$remote_addr拿到的是代理伺服器的IP
    #$http_x_forwarded_for才是使用者的真實IP
    #$remote_user記錄客戶端使用者名稱稱
    #$time_local記錄訪問時間以及時區
    #$request記錄訪問的URL以及協議
    #$status記錄請求的狀態,例如302,404等
    #$body_bytes_sent記錄傳送給客戶端的檔案大小
    #$http_referer記錄訪問來源
    #$http_user_agent記錄客戶端瀏覽器相關的資訊
    #
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #訪問日誌
    #access_log path [format [buffer=size | off]]
    #access_log 路徑 [格式 [快取區大小|關閉日誌]]
    #關閉日誌 access_log off;
    #使用預設的combined格式的日誌access_log access.log
    #或access_log access.log combined;
    #自定義格式,並設定緩衝大小(到達32k的時候才會從記憶體中寫入到磁碟檔案)
    #access_log access.log main buffer=32k;
    #路徑中支援變數:如果是$server_name/access.log,server_name指令設定的是
    #localhost,則路徑為localhost/access.log
    #路徑中含有變數,將導致三個問題
    #(1)user指令中定義的使用者組要對目錄檔案有建立許可權
    #(2)buffer失效,不再使用緩衝
    #(3)每寫入一條記錄,都要開啟日誌檔案,然後關閉,開關,關閉......效率低下
    #為提高包含變數的日誌檔案路徑的存取效能,需要使用open_log_file_cache指令
    #預設情況下open_log_file_cache=off;
    #open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time] | off
    #停留在記憶體中的最大檔案描述符數量 
    #檔案描述符過期時間,如果在過期時間內未使用,則從緩衝中移除,預設10s
    #最少使用次數,如果在過期時間內,超過最少使用的次數,就續期,預設次數1
    #多久檢查一次日誌檔案,預設60秒
    #關閉緩衝
    #示例:open_log_file_cache max=1000 20s min_uses=3 valid=2m
    #access_log  logs/access.log  main;

    #server_names_hash_bucket_size 128;
    #client_header_buffer_size 32k;
    #large_client_header_buffers 4 32k;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;


    #fastcgi_connect_timeout 300;
    #fastcgi_send_timeout 300;
    #fastcgi_read_timeout 300;
    #fastcgi_buffer_size 61k;
    #fastcgi_buffers 4 64k;
    #fastcgi_busy_buffers_size 128k;
    #fastcgi_temp_file_write_size 128k;

    #開啟gzip壓縮
    #gzip  on;
    #gzip_min_length 1k;
    #gzip_buffers 4 16k;
    #gzip_http_version 1.1;
    #gzip_comp_level 2;
    #gzip_types text/plain application/x-javascript text/css application/xml;
    #gzip_vary on;

    #limit_zone crawler $binary_remote_addr 10m;

    #一個server可以理解成一個網站,一臺伺服器可以執行多個站點
    #第一個站點
    server {

        #nginx虛擬主機支援多種配置,基於埠、基於域名(最常用)、基於IP
        #如果基於埠的配置無法匹配或者匹配到了多個server,則搜尋基於域名的配置
        #搜尋順序,按照寫法的先後順序,依此類推

        #基於埠和基於IP的也可以配合使用
        #例如80;127.0.0.1;127.0.0.1:80;127.0.0.1:81;127.0.0.2.80
        #別跟我說一個網絡卡只可以擁有一個IP哦,提示“ifconfig”命令

        #基於埠,其實預設情況下,也是基於127.0.0.1:80;
        listen       80;

        #基於域名,域名的書寫支援萬用字元,如*.firstdomain.com;
        #server_name www.firstdomain.com firstdomain.com;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #目錄瀏覽,開啟nginx目錄瀏覽功能
            #檔案大小從KB開始顯示
            #顯示檔案修改時間為伺服器本地時間
            autoindex on; 
            autoindex_exact_size off; 
            autoindex_localtime on; 

            #網頁檔案存放的根目錄
            root   html;
            #目錄內的預設開啟檔案,如果沒有匹配到index.html,則搜尋index.htm,依次類推
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        #將伺服器錯誤頁面重定向到靜態頁面/50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        #程式碼PHP指令碼到Apache在127.0.0.1:80上監聽
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        #將PHP指令碼傳遞給FastCGI伺服器,偵聽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;
        #}

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
            #expires指令設定瀏覽器快取過期時間
            #可以在http、server、location三個作用域中設定
            #快取圖片或視訊30天
            expires 30d;
        }

        location ~ .*\.(js|css)?$ {
            #快取js/css 1小時
            expires 1h;
        }

        #拒絕訪問.htaccess檔案,如果Apache的文件根目錄與nginx檔案一致
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    #另一個虛擬主機使用基於IP,名稱和埠的配置
    #第二個站點,用於檢視nginx反向代理伺服器的執行狀態
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    #HTTPS伺服器
    #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;
    #    }
    #}

}