记一次nginx服务重启遇到的错误

由于服务器未及时续费导致安装在服务器中的所有服务全部停了,在重启nginx时遇到几个小问题,在此记录一下。

遇到的问题:

1.使用./nginx -t 测试nginx.conf配置文件时报错:unknown directive " " in /usr/local/nginx/conf/nginx.conf:3
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
 

原因:nginx.conf的编码格式为:UTF-8-BOM
解决方法:将nginx.conf的编码格式修改为 UTF-8即可。(我的实现方法:将服务器中的文件下载至我的电脑中,使用notepad++打开修改编码格式然后保存替换服务器中的nginx.conf文件。记一次nginx服务重启遇到的错误_第1张图片

2.配置文件正确后重启nginx服务报错:[root@izbp17xstnbggvoxq2xdqpz sbin]# ./nginx -s reload
nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
[root@izbp17xstnbggvoxq2xdqpz sbin]# nginx -c /usr/local/nginx/conf/nginx.conf

原因:/usr/local/nginx/logs/nginx.pid目录下的nginx.pid文件为空,不知道为何就为空了(如果有知道的还望在评论区告之,不胜感激!)
解决方法: 首先使用 ps -ef | grep nginx 查看是否有nginx的进程,若没有相关进程,则在nginx安装目录下的sbin目录下使用

举例:./nginx -c /usr/local/nginx/conf/nginx.conf 
/usr/local/nginx/conf/nginx.conf 是我nginx服务的nginx.conf配置文件的位置,需要更改为自己的nginx.conf配置文件的位置

./nginx -c /usr/local/nginx/conf/nginx.conf (该指令无任何返回),然后继续在该目录下再使用./nginx -s reload重启nginx服务

(同样无任何返回)

./nginx -s reload 重启nginx服务命令

3./nginx -c /usr/local/nginx/conf/nginx.conf
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] still could not bind()

原因:使用在nginx安装目录下的sbin目录下使用 nginx -c /usr/local/nginx/conf/nginx.conf然后又使用了一次./nginx -c /usr/local/nginx/conf/nginx.conf,使用ps -ef | grep nginx 查看有关nginx的进程发现有个这么个玩意儿:

root     12754     1  0 11:48 ?        00:00:00 nginx: master process nginx -c /usr/local/nginx/conf/nginx.conf

果断使用kill -9 12754(进程号) 干掉这个进程,然后使用错误2的解决方法即可。

ps -ef | grep nginx 可以用于查看有关nginx的进程(最后的nginx也可以为其他例如java)

补充:

1.nginx -c 的意思是: 指定一个文件,即指定配件文件。

2.错误1的中的报错信息还有可能是由于nginx.conf配置文件中有多余空格的存在导致无法通过检测而报错。视问题本身而定。

每一次错误解决后的复盘都会加深对错误的认识与理解,加油!

如果各位大佬有其他不用的见解可以在评论区留下您宝贵的见解,若此文章对您有所帮助就点个赞呗,您的点赞是我持续输出的动力,哈哈。

 

 

 

你可能感兴趣的:(那些年我开发时遇到过的坑)