1. 程式人生 > >【linux技術】nginx詳解

【linux技術】nginx詳解

1 配置檔案

    # worker程序數,通常設定成和cpu的數量相等
    worker_processes  auto;
    # 設定worker程序最大檔案開啟數;避免出現too many open files
    worker_rlimit_nofile 65535;
    # nginx的pid檔案目錄
    pid   /var/run/nginx.pid;

    # events模組:處理所有連線的設定
    events {
            # 多路複用IO(uname -a檢視linux版本,linux2.6版本以上)
            use   epoll;
            # 每個worker程序同時開啟的最大連線數
            worker_connections  1024;
                    }

    # http伺服器,利用反向代理提供負載均衡
    http {
            #設定mime型別,型別由mime.type檔案定義
            include       /etc/nginx/mime.types;
            default_type  application/octet-stream;
            # 設定日誌格式和access_log
            # 如果nginx作為web伺服器,和客戶端隔著反向代理層
            log_format combined '$remote_addr-$remote_user [$time_local]'
                                                '"$request"$status $body_bytes_sent'
                                                '"$http_referer" "$http_user_agent"'
            access_log    /var/log/nginx/access.log;

            # 配置多個虛擬主機需要增加此欄位
            server_names_hash_bucket_size  512;
            # 隱藏nginx版本號:瀏覽器訪問時 http頭部沒有版本號
            server_tokens off;
            # 客戶端連線超時時間:超過時間關閉連線
            keepalive_timeout  65;
            # nginx作為web伺服器有用(一個高效的系統呼叫介面,輸出檔案);反向代理伺服器沒用
            sendfile   on;

            # 設定nginx報文大小,避免出現413 Request Entity Too Large.
            client_max_body_size 70m;
            # 作為反向代理使用,此處禁用掉;反向代理收到服務端請求立馬返回給客戶端
            proxy_buffering off;

            # 開啟gzip壓縮:載入網頁資料採用gzip壓縮,大大提高傳輸速率
            gzip  on;
            # 處理壓縮的緩衝區大小;以4k為單位,申請16倍的記憶體空間 建議保持預設即可
            gzip_buffers 4 16k;
            # gzip預設版本是http/1.1;預設http/1.0不支援gzip功能
            gzip_http_version 1.0;
            # 壓縮比:1-9的整數 數字越大 壓縮比越高 越耗費資源
            gzip_comp_level 1;
            # 壓縮型別
            gzip_types  text/htm text/plain application/x-javascript text/css  application/xml  text/javascript;
            # 是否新增vary頭部:校驗資訊
            gzip_vary on;
            # nginx作為反向代理使用,此處無條件壓縮所有資料;web伺服器沒用
            gzip_proxied any;

            # nginx虛擬主機配置
            include /etc/nginx/conf.d/*.conf;

            # lua指令碼相關知識

            # server欄位:虛擬主機
            server {}

            }