### 3.1 Nginx全域性配置說明
阿新 • • 發佈:2020-12-07
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; } #}