<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
nginx
的設定主要可以劃分為main
、events
、http
、server
、location
塊。
main
:置影響nginx
全域性的指令。一般有執行nginx
伺服器的使用者組,nginx
程序pid
存放路徑,紀錄檔存放路徑,組態檔引入,允許生成worker process
數等。events
:設定影響nginx
伺服器或與使用者的網路連線。有每個程序的最大連線數,選取哪種事件驅動模型處理連線請求,是否允許同時接受多個網路連線,開啟多個網路連線序列化等。http
:可以巢狀多個server
,設定代理,快取,紀錄檔定義等絕大多數功能和第三方模組的設定。如檔案引入,mime-type
定義,紀錄檔自定義,是否使用sendfile
傳輸檔案,連線超時時間,單連線請求數等server
:設定虛擬主機的相關引數,一個http
中可以有多個server
。location
:設定請求的路由,以及各種頁面的處理情況。下面就以組態檔作為參考
每個指令必須以分號結束
# main塊 user nobody nobody; # 設定nginx執行的使用者或者組,如果只設定了一個,說明使用者跟組都是同一個名稱 worker_processes 1; # 允許生成的程序數,預設為1;可以設定為auto,一般設定為cpu的核心數 #pid logs/nginx.pid; # nginx 程序pid的存放地址 # 制定紀錄檔路徑,級別。這個設定可以放入全域性塊,http塊,server塊, # 級別以此為:debug|info|notice|warn|error|crit|alert|emerg error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; # events塊 events { accept_mutex on; #設定網路連線序列化,防止驚群現象發生,預設為on multi_accept on; #設定一個程序是否同時接受多個網路連線,預設為off #use epoll; #事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 1024; #最大連線數,預設為512 } # http塊 http { # http 全域性塊 include mime.types; #副檔名與檔案型別對映表 default_type application/octet-stream; #預設檔案型別,預設為text/plain #access_log off; #取消服務紀錄檔 # 自定義紀錄檔模板 main 為自定義紀錄檔模板的名稱 #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; #允許sendfile方式傳輸檔案,預設為off,可以在http塊,server塊,location塊 sendfile_max_chunk 100k; #每個程序每次呼叫傳輸數量不能大於設定的值,預設為0,即不設上限。 keepalive_timeout 65; #連線超時時間,預設為75s,可以在http,server,location塊。 # 啟用了sendfile 才會生效,作用是等封包累積到一定大小才傳送 #tcp_nopush on; # 開啟gzip壓縮,對於文字檔案,在伺服器端傳送響應之前進行 GZip 壓縮,壓縮後的文字大小會減小到原來的 1/4 - 1/3 gzip on; # 負載均衡設定 upstream mysvr { server 127.0.0.1:7878; server 192.168.10.121:3333 backup; #熱備(其它所有的非backup機器down或者忙的時候,請求backup機器)) } upstream mysvr2 { #weigth參數列示權值,權值越高被分配到的機率越大 server 192.168.1.11:80 weight=5; server 192.168.1.12:80 weight=1; server 192.168.1.13:80 weight=6; } # server 塊 server { # server 全域性塊 listen 80; # 監聽埠 server_name localhost; # 監聽地址 keepalive_requests 120; #單連線請求上限次數 # http請求強制跳轉https rewrite ^(.*)$ https://$host$1 permanent; #charset koi8-r; #access_log logs/host.access.log main; # location 塊 location / { #請求的url過濾,正則匹配,~為區分大小寫,~*為不區分大小寫 root html; #根目錄設定 index index.html index.htm; #設定預設頁,html/index.html proxy_pass http://mysvr; #請求轉向mysvr 定義的伺服器列表 deny 127.0.0.1; #拒絕的ip allow 172.18.5.54; #允許的ip } # HTTPS設定,此設定需要ssl模組的支援 server { listen 443 ssl; server_name localhost; # https 證書地址 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; } } }
user nobody nobody; worker_processes 1; pid logs/nginx.pid; daemon off; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; worker_rlimit_nofile 65535;
user
:設定nginx
執行的使用者以及組,如果只設定了一個,說明使用者跟組都是同一個名稱,window
下不用設定。worker_processes
:工作程序數,根據硬體設定調整,通常等於CPU
核心數或者2倍,也可以設定為auto
,預設為1pid
:pid
(程序識別符號)存放路徑,windows
放在 logs/nginx.pid
daemon
:設定nginx
是否以守護行程執行,off
否,on
是error_log
:指定紀錄檔路徑、級別,這個設定可以放到main塊
,http塊
,server塊
worker_rlimit_nofile
: 一個程序能開啟的檔案描述符最大值,理論上該值應該是最多能開啟的檔案數除以程序數,但是由於 nginx 負載並不是完全均衡的,所以這個值最好等於最多能開啟的檔案數。可以通過·getconf PAGESIZE· 來檢視LINUX的分頁大小
open_file_cache
:設定快取,為開啟的檔案指定快取,預設是沒有啟用的。max
引數指定快取最大數量,建議和開啟檔案數一致。inactive
引數指經過多長時間檔案沒有被請求(或沒有被使用)後刪除快取。開啟檔案最大數量為我們在 main
設定的 worker_rlimit_nofile
引數(該引數用來為工作程序設定檔案描述符的限制)。open_file_cache_valid
:多久檢查一次快取的有效性,如果一個檔案在inactive
時間內沒有被使用到,它將從快取中移除。open_file_cache_min_uses
:設定快取中的檔案在 open_file_cache
指令中的 inactive
引數(open_file_cache max=2000 inactive=60s;
)指定的時間內檔案的最少使用次數。如果超過這個數位,檔案描述符一直是在快取中開啟的。如果有一個檔案在 inactive
時間內未達到最少使用次數,它將被從快取移除。events { #use epoll; accept_mutex on; multi_accept on; worker_connections 20000; client_header_buffer_size 4k; open_file_cache max=2000 inactive=60s; open_file_cache_valid 60s; open_file_cache_min_uses 1; }
use
:指令用來指定要使用的連線處理方法。通常不需要顯式指定它,因為 nginx 預設會使用最有效的方法;select|poll|kqueue|epoll|resig|/dev/poll|eventport
accept_mutex
:用來設定網路連線序列化,防止驚群現象發生,預設為on
;驚群現象:指多程序(多執行緒)在同時阻塞等待同一個事件的時候(休眠狀態),如果等待的這個事件發生,那麼他就會喚醒等待的所有程序(或者執行緒),但是最終卻只能有一個程序(執行緒)獲得這個時間的“控制權”,對該事件進行處理,而其他程序(執行緒)獲取“控制權”失敗,只能重新進入休眠狀態,這種現象和效能浪費就叫做驚群效應
multi_accept
:設定是否允許同時接受多個網路連線,只能在events
塊設定。預設關閉nginx
伺服器每個工作程序可以同時接受多個新的網路連線,但是預設是關閉的,需要在nginx.conf
組態檔中設定multi_accept on;
worker_connections
: 設定工作程序最大連線數,理論上每臺 Nginx
伺服器的最大連線數為 worker_processes*worker_connections
。其中,worker_processes
為指定的工作程序數量,該設定在全域性塊中。client_header_buffer_size
:使用者端請求頭部的緩衝區大小,根據系統分頁大小來設定,可以設定為系統分頁的大小。Linux查詢系統分頁大小命令:getconf PAGESIZE
open_file_cache
:設定快取,為開啟的檔案指定快取,預設是沒有啟用的。max
引數指定快取最大數量,建議和開啟檔案數一致。inactive
引數指經過多長時間檔案沒有被請求(或沒有被使用)後刪除快取。開啟檔案最大數量為我們在 main
設定的 worker_rlimit_nofile
引數(該引數用來為工作程序設定檔案描述符的限制)。open_file_cache_valid
:多久檢查一次快取的有效性,如果一個檔案在inactive
時間內沒有被使用到,它將從快取中移除。open_file_cache_min_uses
:設定快取中的檔案在 open_file_cache
指令中的 inactive
引數(open_file_cache max=2000 inactive=60s;
)指定的時間內檔案的最少使用次數。如果超過這個數位,檔案描述符一直是在快取中開啟的。如果有一個檔案在 inactive
時間內未達到最少使用次數,它將被從快取移除。以上就是Nginx 設定之main/events塊的詳細內容,更多關於Nginx 設定之main/events塊的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45