在计算机科学和网络通信中,端口和进程是两个基本的概念。继上一篇的nginx配置,我们可以看出,Nginx 是一个高性能的开源反向代理服务器,它通常用于处理客户端的请求并将这些请求转发到后端的应用服务器,同时还能处理静态资源的服务。Nginx 主要监听端口用于接收客户端请求,我们部署一个nginx来访问web项目,那就需要一个端口,比如8080端口,通过
xx.xx.xx.xx/8080
来访问web项目,当nginx监听到8080端口有请求的时候,就会做出响应的处理
什么是端口
-
定义: 端口是一个数字,用于标识计算机上运行的应用程序或服务。
-
作用: 计算机上的不同应用程序需要进行通信,端口就是用来区分这些不同应用程序的。每个端口都有一个唯一的数字,通常范围是 0 到 65535。
-
分类:
- 系统端口(Well-known Ports): 范围是 0 到 1023,用于一些知名的服务,例如 HTTP 使用的端口 80,HTTPS 使用的端口 443。
- 注册端口(Registered Ports): 范围是 1024 到 49151,用于用户注册的应用程序。
- 动态或私有端口(Dynamic or Private Ports): 范围是 49152 到 65535,用于动态分配或私有协议。
查找nginx占用端口
js
ps -ef|grep nginx
使用 ps -ef|grep nginx 这个命令来查找当前服务器下,正在运行的nginx进程,一个服务器下可以部署多个nginx来为web项目服务
从上图我查找的nignx进程来看,我服务部署了两个nginx,并且可以看到,每个nginx都有一个master process 和worker process ,在这里表示主进程和工作进程
主进程只有一个,但是工作进程可以有多个。
主进程(Master Process)主要负责管理工作进程,处理配置文件的重新加载等任务。
工作进程(Worker Process)主要用于实际处理客户端请求
什么是进程
-
定义: 进程是计算机中正在运行的程序的实例。一个程序可以同时运行多个进程,每个进程都有自己的内存空间和系统资源。
-
作用: 进程是计算机执行任务和管理资源的基本单位。每个进程都有自己的代码、数据、内存空间,以及与其他进程隔离的执行环境。
-
特点:
- 独立性:进程之间是相互独立的,一个进程的错误不会影响其他进程。
- 并发执行: 计算机可以同时运行多个进程,提高系统的效率和资源利用率。
- 通信: 进程之间可以通过进程间通信(IPC)进行数据交换和协作。
清除进程
由于进程的独立性,每个进程都会拥有自己的端口,昨天在部署前端环境的时候,起了8088的nginx配置, 会出现以下的情况
会显示nginx想要在8088端口上面启动,但是发现该端口已经被占用了, Address already in use,地址已经被使用了,当前的nginx想要再次在这个端口启动服务是不行的。
因为在计算机上的应用程序需要和网络进行通信时,它会使用端口来标识自己,而网络上的其他计算机可以通过指定端口来连接到该应用程序,所以每个端口也可以说是地址都应该是唯一的
当遇到这个情况可以找到已经使用的端口来进行清除,前提你知道这个端口用的服务是不重要的,可以直接kill的
最后
使用 sudo netstat -tulpn | grep :8088 来查找某个端口使用的进程
可以看到是某个以321结尾的进程号的进程占用了8088的端口,我们直接清除即可
清除完成之后即可重新启动nginx在8088端口上