<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          Nginx完全教程(必讀)

          作者: 時間:2016-10-08 來源:網(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)

          在這時,兩個 nginx 實例會同時運行,一起處理輸入的請求。要逐步停止舊的實例,你必須發(fā)送 WINCH 信號給舊的主進程,然后,它的工作進程就將開始從容關(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)

          一段時間后,舊的工作進程處理了所有已連接的請求后退出,就僅由新的工作進程來處理輸入的請求了:

          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)

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

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

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

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

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

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

          如果嘗試升級成功,而你也希望保留新的服務(wù)器時,發(fā)送 QUIT 信號給舊的主進程使其退出而只留下新的服務(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表來協(xié)助完成請求的快速處理。

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

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

          事件模型

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

          · select - 標(biāo)準(zhǔn)方法。 如果當(dāng)前平臺沒有更有效的方法,它是編譯時默認(rèn)的方法。你可以使用配置參數(shù) --with-select_module 和 --without-select_module 來啟用或禁用這個模塊。

          · poll - 標(biāo)準(zhǔn)方法。 如果當(dāng)前平臺沒有更有效的方法,它是編譯時默認(rèn)的方法。你可以使用配置參數(shù) --with-poll_module 和 --without-poll_module 來啟用或禁用這個模塊。

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

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

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

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

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


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();