nginx端口设置浅谈

设置nginx的参数listen时,总是存在着误区,现加以区分。

nginx是以多进程的方式来工作的

nginx是以多进程的方式来工作的。
nginx在启动后,会有一个master进程和多个worker进程。

master进程主要用来管理worker进程:
包含:
1、接收来自外界的信号,向各worker进程发送信号。

2、监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。

而基本的网络事件,则是放在worker进程中来处理了。worker进程之间是对等的,一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。

worker进程的个数,一般会设置与机器cpu核数一致。当我们提供80端口的http服务时,一个连接请求过来,每个进程都有可能处理这个连接。

处理过程如下:

master(master进程会先建立好需要listen的socket)--------fork生成子进程workers,继承socket(此时workers子进程们都继承了父进程master的所有属性,当然也包括已经建立好的socket,当然不是同一个socket,只是每个进程的这个socket会监控在同一个ip地址与端口,这个在网络协议里面是允许的)------当一个连接进入,产生惊群现象。
 

一般来说,当一个连接进来后,所有在accept在这个socket上面的进程,都会收到通知,而只有一个进程可以accept这个连接,其它的则accept失败。

 小结:

进程的个数默认和计算机的内核个数相同,也可以在配置文件设置。

配置文件中前几行有:worker_processes  1 ; (表示启动一个woker进程)

Nginx启动后,用cmd命令执行  netstat –ano 可以看到机器上所有进程及端口号。

我们可以看到

Server {

         Listen  8011

         Server_name  localhost;

}

Nginx的一个进程的端口为8011。

如果worker_processes设为2,则会有2个端口为8011的进程。

Listen设置的端口是nginx的端口,不是要监听的端口。(易误区)

前端、后端、nginx三者都要有各自的端口。

参考:

nginx是以多进程的方式来工作的 - 一束光 - 博客园

Nginx 前后端分离项目部署配置_Kung's blog column-CSDN博客_前后端分离nginx配置详解

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值