关于Nginx,所踩过的坑
现象
今天修改了nginx监听的端口(默认80),将默认的80端口修改为8080,重启nginx服务时出现报错,报错结果如下:2024/10/20 01:23:46 [emerg] 1635#1635: bind() to 0.0.0.0:8000 failed (13: Permission denied)
。
解决方案
看提示应该是权限问题导致,但是我是使用的root账户做的修改,所以我想权限问题应该不会导致这个情况。去找度娘之后,说应该是centos默认开启了Selinux,于是就去关闭selinux。
1、查看:getenforce
2、临时修改:setenforce 0
3、永久关闭:vim /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
做了以上修改之后,再次重启nginx服务。结果还是重启失败
然后再次查看了报错日志’/var/log/nginx/error.log’,出现以下报错2024/10/20 15:33:22 [emerg] 1341#1341: bind() to 0.0.0.0:8080 failed (98: Address already in use) 2024/10/20 15:33:22 [notice] 1341#1341: try again to bind() after 500ms
,看提示是关于地址使用方面的原因。
查看进程ps aux | grep nginx
[root@localhost sbin]# ps aux | grep nginx root 1384 0.0 0.1 47372 1148 ? Ss 15:38 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 1385 0.0 0.1 47772 1668 ? S 15:38 0:00 nginx: worker process nginx 1386 0.0 0.1 47772 1668 ? S 15:38 0:00 nginx: worker process nginx 1387 0.0 0.1 47772 1668 ? S 15:38 0:00 nginx: worker process nginx 1388 0.0 0.1 47772 1408 ? S 15:38 0:00 nginx: worker process root 1396 0.0 0.0 112812 980 pts/0 R+ 15:54 0:00 grep --color=auto nginx
发现开启了5个进程,然后通过kill掉进程,再次重启nginx服务就OK了