<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Nginx完全教程(必讀)

Nginx完全教程(必讀)

作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò ) 收藏

36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

在這時(shí),兩個(gè) nginx 實(shí)例會(huì )同時(shí)運行,一起處理輸入的請求。要逐步停止舊的實(shí)例,你必須發(fā)送 WINCH 信號給舊的主進(jìn)程,然后,它的工作進(jìn)程就將開(kāi)始從容關(guān)閉:

PID PPID USER %CPU VSZ WCHAN COMMAND33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx33135 33126 nobody 0.0 1380 kqread nginx: worker process is shutting down (nginx)

36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx

36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

一段時(shí)間后,舊的工作進(jìn)程處理了所有已連接的請求后退出,就僅由新的工作進(jìn)程來(lái)處理輸入的請求了:

PID PPID USER %CPU VSZ WCHAN COMMAND33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx

36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

這時(shí),因為舊的服務(wù)器還尚未關(guān)閉它監聽(tīng)的套接字,所以,通過(guò)下面的幾步,你仍可以恢復舊的服務(wù)器:

· 發(fā)送 HUP 信號給舊的主進(jìn)程 - 它將在不重載配置文件的情況下啟動(dòng)它的工作進(jìn)程

· 發(fā)送 QUIT 信號給新的主進(jìn)程,要求其從容關(guān)閉其工作進(jìn)程

· 發(fā)送 TERM 信號給新的主進(jìn)程,迫使其退出

· 如果因為某些原因新的工作進(jìn)程不能退出,向其發(fā)送 KILL 信號

新的主進(jìn)程退出后,舊的主進(jìn)程會(huì )由移除 .oldbin 前綴,恢復為它的 .pid 文件,這樣,一切就都恢復到升級之前了。

如果嘗試升級成功,而你也希望保留新的服務(wù)器時(shí),發(fā)送 QUIT 信號給舊的主進(jìn)程使其退出而只留下新的服務(wù)器運行:

PID PPID USER %CPU VSZ WCHAN COMMAND 36264 1 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx 36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)

Nginx 配置優(yōu)化

hash表

Ngnix使用hash表來(lái)協(xié)助完成請求的快速處理。

考慮到保存鍵及其值的hash表存儲單元的大小不至于超出設定參數(hash bucket size), 在啟動(dòng)和每次重新配置時(shí),Nginx為hash表選擇盡可能小的尺寸。

直到hash表超過(guò)參數(hash max size)的大小才重新進(jìn)行選擇. 對于大多數hash表都有指令來(lái)修改這些參數。例如,保存服務(wù)器名字的hash表是由指令 server_names_hash_max_size 和 server_names_hash_bucket_size所 控制的。參數hash bucket size總是等于hash表的大小,并且是一路處理器緩存大小的倍數。在減少了在內存中的存取次數后,使在處理器中加速查找hash表鍵值成為可能。如果 hash bucket size等于一路處理器緩存的大小,那么在查找鍵的時(shí)候,最壞的情況下在內存中查找的次數為2。第一次是確定存儲單元的地址,第二次是在存儲單元中查找鍵 值。因此,如果Nginx給出需要增大 hash max size 或 hash bucket size的提示,那么首要的是增大前一個(gè)參數的大小.

事件模型

Nginx支持如下處理連接的方法(I/O復用方法),這些方法可以通過(guò)use指令指定。

· select - 標準方法。 如果當前平臺沒(méi)有更有效的方法,它是編譯時(shí)默認的方法。你可以使用配置參數 --with-select_module 和 --without-select_module 來(lái)啟用或禁用這個(gè)模塊。

· poll - 標準方法。 如果當前平臺沒(méi)有更有效的方法,它是編譯時(shí)默認的方法。你可以使用配置參數 --with-poll_module 和 --without-poll_module 來(lái)啟用或禁用這個(gè)模塊。

· kqueue - 高效的方法,使用于 FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X. 使用雙處理器的MacOS X系統使用kqueue可能會(huì )造成內核崩潰。

· epoll - 高效的方法,使用于Linux內核2.6版本及以后的系統。在某些發(fā)行版本中,如SuSE 8.2, 有讓2.4版本的內核支持epoll的補丁。

· rtsig - 可執行的實(shí)時(shí)信號,使用于Linux內核版本2.2.19以后的系統。默認情況下整個(gè)系統中不能出現大于1024個(gè)POSIX實(shí)時(shí)(排隊)信號。這種情況對于高負載的服務(wù)器來(lái)說(shuō)是低效的;所以有必要通過(guò)調節內核參數 /proc/sys/kernel/rtsig-max 來(lái)增加隊列的大小??墒菑腖inux內核版本2.6.6-mm2開(kāi)始, 這個(gè)參數就不再使用了,并且對于每個(gè)進(jìn)程有一個(gè)獨立的信號隊列,這個(gè)隊列的大小可以用 RLIMIT_SIGPENDING 參數調節。當這個(gè)隊列過(guò)于擁塞,nginx就放棄它并且開(kāi)始使用 poll 方法來(lái)處理連接直到恢復正常。

· /dev/poll - 高效的方法,使用于 Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+.

· eventport - 高效的方法,使用于 Solaris 10. 為了防止出現內核崩潰的問(wèn)題, 有必要安裝 這個(gè) 安全補丁。


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>