1. 程式人生 > 實用技巧 >### 3.1 Nginx全域性配置說明

### 3.1 Nginx全域性配置說明

3.1 Nginx全域性配置說明

user  nginx nginx;                 # 啟動Nginx⼯作程序的⽤⼾和組
worker_processes  [number | auto]; # 啟動Nginx⼯作程序的數量
worker_cpu_affinity 00000001 00000010 00000100 00001000;
## 將Nginx⼯作程序繫結到指定的CPU核⼼,預設Nginx是不進⾏程序繫結的,繫結並不是意味著當前nginx程序獨
## 佔以⼀核⼼CPU,但是可以保證此程序不會運⾏在其他核⼼上,這就極⼤減少了nginx的⼯作程序在不同的cpu核
## ⼼上的來回跳轉,減少了CPU對程序的資源分配與回收以及記憶體管理等,因此可以有效的提升nginx伺服器的性
## 能。 此處CPU有四顆核心。也可寫成:
worker_cpu_affinity 0001 0010 0100 1000;


## 錯誤⽇志記錄配置,語法:error_log file  [debug | info | notice | warn | error | crit | alert | emerg]
# error_log  logs/error.log;
# error_log  logs/error.log  notice;
error_log  /apps/nginx/logs/error.log error;

# pid⽂件儲存路徑
pid        /apps/nginx/logs/nginx.pid;

worker_priority 0; # ⼯作程序nice值,-20~19
worker_rlimit_nofile 65536; # 這個數字包括Nginx的所有連線(例如與代理伺服器的連線等),⽽不僅僅是與
                            # 客⼾端的連線,另⼀個考慮因素是實際的併發連線數不能超過系統級別的最⼤開啟⽂件數的限制.
[root@s2 ~]# watch -n1  'ps -axo pid,cmd,nice | grep nginx' #驗證程序優先順序

daemon off;  # 前臺運⾏Nginx服務⽤於測試、docker等環境。
master_process off|on; #是否開啟Nginx的master-woker⼯作模式,僅⽤於開發除錯場景。

events { # 事件模型配置引數
    worker_connections  65536;  # 設定單個⼯作程序的最⼤併發連線數
    use epoll; # 使⽤epoll事件驅動,Nginx⽀持眾多的事件驅動,⽐如select、poll、epoll,只能設定在events模組中設定。
    accept_mutex on; # 優化同⼀時刻只有⼀個請求⽽避免多個睡眠程序被喚醒的設定,on為防⽌被同時喚醒默
                     # 認為off,全部喚醒的過程也成為"驚群",因此nginx剛安裝完以後要進⾏適當的優化。
    multi_accept on; # Nginx伺服器的每個⼯作程序可以同時接受多個新的⽹絡連線,但是需要在配置⽂件中
                     # 配置,此指令預設為關閉,即預設為⼀個⼯作程序只能⼀次接受⼀個新的⽹絡連線,開啟後⼏個同時接受多個。
}

3.2 http配置段說明

http {
    include       mime.types; # 導⼊⽀持的⽂件型別
    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"';
    # access_log  logs/access.log  main;

    # ⾃定義優化引數
    sendfile        on; # 實現⽂件零拷⻉
    #tcp_nopush     on; # 在開啟了sendfile的情況下,合併請求後統⼀傳送給客⼾端。
    #tcp_nodelay    off; # 在開啟了keepalived模式下的連線是否啟⽤TCP_NODELAY選項,當為off時,延
                         # 遲0.2s傳送,預設On時,不延遲傳送,⽴即傳送⽤⼾相應報⽂。
    #keepalive_timeout  0;
    keepalive_timeout  65 65; # 設定會話保持時間
    #gzip  on; # 開啟⽂件壓縮

server {
        listen       80; # 設定監聽地址和端⼝
        server_name  localhost; # 設定server name,可以以空格隔開寫多個並⽀持正則表示式,如
                                # *.magedu.com www.magedu.* www.(site\d+)\.magedu\.com$ default_server
        #charset koi8-r; # 設定編碼格式,預設是俄語格式,可以改為utf-8
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        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$ { #以http的⽅式轉發php請求到指定web伺服器
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ { #以fastcgi的⽅式轉發php請求到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 { #拒絕web形式訪問指定⽂件,如很多的⽹站都是通過.htaccess⽂件來改變⾃⼰的重定向等功能。
        #    deny  all;
        #}
        location ~ /passwd.html {
            deny  all;
        }
        }

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server { #⾃定義虛擬server
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm; #指定預設⽹⻚⽂件,此指令由ngx_http_index_module模組提供

    #    }
    #}

    # HTTPS server
    #
    #server { #https伺服器配置
    #    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;
    #    }
    location  /linux38/passwd.ht {
      deny  all;
     }

    #}