最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nginx的master進程和worker進程用法解讀

 更新時間:2025年07月10日 09:34:42   作者:新是一切的根源  
Nginx啟動后包含master和worker進程,master負責管理worker及讀取配置,worker處理請求,通過worker_processes設置worker數(shù)量(通常不超過CPU核心數(shù))或auto自動檢測,結合worker_cpu_affinity綁定CPU核心以優(yōu)化性能

nginx的master進程和worker進程

當你啟動nginx以后,使用ps命令查看nginx進程, 會發(fā)現(xiàn)nginx進程不只有一個,默認情況下, 你會看到至少兩個nginx進程,如下:

[root@server1 ~]# ps -ef |grep nginx |grep -v grep
root      2120     1  0 10:03 ?        00:00:00 nginx: master process nginx
nobody    2173  2120  0 10:30 ?        00:00:00 nginx: worker process
[root@server1 ~]# 

編譯安裝nginx后,默認情況下worker進程是以"nobody"用戶的身份運行的,如果我們想要指定worker進程的運行用戶,則可以使用"user"指令,比如,

指定worker進程以nginx用戶的身份運行

[root@server1 ~]# useradd -u 900 nginx
[root@server1 ~]# id nginx
uid=900(nginx) gid=1001(nginx) groups=1001(nginx)
[root@server1 ~]# 
user  nginx;
worker_processes  1;
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf
[root@server1 ~]# nginx -s reload
[root@server1 ~]# ps -ef |grep nginx |grep -v grep
root      2120     1  0 10:03 ?        00:00:00 nginx: master process nginx
nginx     2206  2120  0 11:16 ?        00:00:00 nginx: worker process
[root@server1 ~]# 

當我啟動nginx以后

有兩個nginx進程,一個master進程,一個worker進程,這兩個nginx進程都有各自的作用,見名知意, "worker"進程天生就是來"干活"的,真正負責處理請求的進程就是你看到的"worker"進程,那么"master"進程有什么用呢? “master"進程其實是負責管理"worker"進程的,除了管理” worker"進程,master"進程還負責讀取配置文件、判斷配置文件語法的工作,“master進程"也叫"主進程”,在nginx中,"master"進程只能有一個,而"worker"進程可以有多個,worker"進程的數(shù)量可以由管理員自己進行定義,那么怎么定義"worker"進程的數(shù)量呢?

沒錯,我們只需要借助一條配置指令即可,

這條配指令就是"worker _processes"指令

默認的nginx.conf配置文件中有這樣一條配置

worker_ processes 1;

上述配置的意思就是啟動nginx后只有1個worker進程,你想要多少個worker進程,將worker_ processe指令的值設置成多少就好了,非常簡單, worker_ processes指令只能在main區(qū)域中使用,通常情況下,

worker_ processes的值通常不會大于服務器中cpu的核心數(shù)量,

換句話說就是,worker進程的數(shù)通常與服務器有多少

cpu核心有關,比如,nginx所在主機擁有4核cpu,那么worker_ processes的值通常不會大于4,這樣做的原因是為了盡力讓每個worker進程都有一個cpu可以使用,盡量避免了多個worker進程搶占同一個cpu的情況,我們也可以將worker_ processes的值設置為"auto"

當worker_ processes的值為auto時,nginx會自動檢測當前主機的cpu核心數(shù),并啟動對應數(shù)量的worker進程,比如,

nginx檢測到當前主機一共有4個cpu核心

那么nginx就會啟動4個worker進程

user  nginx;
worker_processes  auto;
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf
[root@server1 ~]# nginx -s reload
nginx: [alert] kill(2120, 1) failed (3: No such process)
[root@server1 ~]# nginx 
[root@server1 ~]# nginx -s reload
[root@server1 ~]# ps -ef | grep nginx |grep -v grep
root      2134     1  0 11:46 ?        00:00:00 nginx: master process nginx
nginx     2140  2134  0 11:46 ?        00:00:00 nginx: worker process
nginx     2141  2134  0 11:46 ?        00:00:00 nginx: worker process
nginx     2142  2134  0 11:46 ?        00:00:00 nginx: worker process
nginx     2143  2134  0 11:46 ?        00:00:00 nginx: worker process
[root@server1 ~]# 

同時,為了避免cpu在切換進程時產(chǎn)生性能損耗,我們也可以將worker進程與cpu核心進行"綁定",當worker進程與cpu核心綁定以后,worker進程可以更好的專注的使用某個cpu核心上的緩存,從而減少因為cpu切換不同worker進程而帶來的緩存失效,如果想要讓worker進程與某個cpu核心綁定,則需要借助另外一個配置指令,它就是"worker_ cpu_ affinity"指令

想要搞明白怎樣使用"worker_ cpu_ affinity" 指令,最好先來了解一個概念,這個概念就是"cpu掩碼",我們可以通過"cpu掩碼"表示某個cpu核心,

比如,當前機器上一共有4個cpu核心,那么我們就用4個0表示這4個核,也就是說,我們可以使用如下字符表示這4個核:

0000

那么第一個核就用如下字符表示

0001

第二個核就用如下字符表示

0010

第三個核就用如下字符表示

0100

規(guī)律就是,有幾個核,就用幾個0表示,如果想要使用某個核,就將對應位的0改成1,位從右邊開始

比如,如果有8個核,我就可以使用如下字符表示這8個核中的第二個核:

00000010

user  nginx;
worker_processes  auto;
worker_cpu_affinity 1000 0100 0010 0001;

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Nginx為靜態(tài)資源配置緩存時間的操作步驟

    Nginx為靜態(tài)資源配置緩存時間的操作步驟

    最近在優(yōu)化網(wǎng)站性能時,發(fā)現(xiàn)很多靜態(tài)資源(比如圖片、CSS?文件等)每次都會從服務器重新加載,這不僅浪費了帶寬,還增加了 服務器的負載,為了解決這個問題,我研究了一下如何在?Nginx?中為靜態(tài)資源配置緩存時間,下面是我的配置過程,需要的朋友可以參考下
    2025-02-02
  • nginx如何使用openssl自簽名實現(xiàn)https登錄

    nginx如何使用openssl自簽名實現(xiàn)https登錄

    這篇文章主要介紹了nginx使用openssl自簽名實現(xiàn)https登錄,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • 開發(fā)環(huán)境服務器vs生產(chǎn)環(huán)境服務器:開發(fā)與生產(chǎn)須分明詳解

    開發(fā)環(huán)境服務器vs生產(chǎn)環(huán)境服務器:開發(fā)與生產(chǎn)須分明詳解

    開發(fā)環(huán)境服務器(如Vite)和生產(chǎn)環(huán)境服務器(如Nginx和Node.js)在職責和工作方式上存在顯著差異,開發(fā)環(huán)境服務器專注于快速開發(fā)和調試,而生產(chǎn)環(huán)境服務器則強調穩(wěn)定性和高并發(fā)處理,Vite適合開發(fā)環(huán)境,而Nginx和Node.js更適合生產(chǎn)環(huán)境
    2025-01-01
  • Nginx實現(xiàn)自簽名SSL證書生成與配置實現(xiàn)

    Nginx實現(xiàn)自簽名SSL證書生成與配置實現(xiàn)

    本文主要介紹了Nginx實現(xiàn)自簽名SSL證書生成與配置實現(xiàn),文章將詳細介紹生成自簽名SSL證書的步驟,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Ubuntu+Nginx+Mysql+Php+Zend+eaccelerator安裝配置文字版

    Ubuntu+Nginx+Mysql+Php+Zend+eaccelerator安裝配置文字版

    把我架設lnmp網(wǎng)站的過程寫出來,希望對想架設網(wǎng)站的朋友有所幫助,如有更好的辦法請?zhí)岢鰜?/div> 2012-02-02
  • 一次nginx 504 Gateway Time-out錯誤排查、解決記錄

    一次nginx 504 Gateway Time-out錯誤排查、解決記錄

    這篇文章主要介紹了一次nginx 504 Gateway Time-out錯誤排查、解決記錄,經(jīng)過反復檢查,發(fā)現(xiàn)造成這個問題的原因就是PHP的CURL沒有設置超時時間,解決辦法只要設置超時時間或者修改一下nginx的配置即可解決,需要的朋友可以參考下
    2014-05-05
  • Nginx動靜分離實現(xiàn)案例代碼解析

    Nginx動靜分離實現(xiàn)案例代碼解析

    這篇文章主要介紹了Nginx動靜分離實現(xiàn)案例代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Nginx重新編譯添加模塊的方法

    Nginx重新編譯添加模塊的方法

    這篇文章主要介紹了Nginx重新編譯添加模塊的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Nginx基本運行原理解析

    Nginx基本運行原理解析

    這篇文章給大家介紹Nginx基本運行原理解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2026-05-05
  • nginx之限流詳解(請求/并發(fā)量)

    nginx之限流詳解(請求/并發(fā)量)

    文章介紹Web運維中使用Nginx的limit_conn和limit_req模塊限制IP連接數(shù)及請求頻率,防范惡意攻擊和爬蟲,通過$binary_remote_addr或map模塊處理代理層IP,設置503錯誤防止服務器過載
    2025-08-08

最新評論

本溪| 长岛县| 丹棱县| 浦东新区| 鲁甸县| 玉溪市| 邯郸市| 黄大仙区| 沾化县| 开封市| 达日县| 江达县| 遵义市| 马边| 京山县| 疏勒县| 龙海市| 汝城县| 沿河| 乐陵市| 那曲县| 凉城县| 长岛县| 繁昌县| 中牟县| 贵溪市| 东宁县| 翁牛特旗| 阿城市| 中山市| 宁德市| 濉溪县| 黄石市| 来安县| 康乐县| 景东| 武胜县| 广丰县| 东光县| 抚州市| 贵德县|