首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nginx有时会停止

问nginx有时会停止
EN

Stack Overflow用户
提问于 2018-05-20 23:05:35
回答 5查看 1.8K关注 0票数 2

我在虚拟机上的nginx正在停止,我找不到原因。

代码语言:javascript
复制
sudo nginx -t -c /etc/nginx/nginx.conf

返回

代码语言:javascript
复制
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

还有一些日志:

代码语言:javascript
复制
sudo systemctl status nginx.service

日志:

代码语言:javascript
复制
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2018-05-20 12:26:38 UTC; 2h 34min ago
  Process: 25083 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 25126 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
  Process: 25123 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 6426 (code=exited, status=0/SUCCESS)

May 20 12:26:37 sl-code nginx[25126]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
May 20 12:26:37 sl-code nginx[25126]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
May 20 12:26:38 sl-code nginx[25126]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
May 20 12:26:38 sl-code nginx[25126]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
May 20 12:26:38 sl-code nginx[25126]: nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
May 20 12:26:38 sl-code nginx[25126]: nginx: [emerg] still could not bind()
May 20 12:26:38 sl-code systemd[1]: nginx.service: Control process exited, code=exited status=1
May 20 12:26:38 sl-code systemd[1]: Failed to start A high performance web server and a reverse proxy server.
May 20 12:26:38 sl-code systemd[1]: nginx.service: Unit entered failed state.
May 20 12:26:38 sl-code systemd[1]: nginx.service: Failed with result 'exit-code'.

错误日志: sudo nano /var/log/nginx/error.log

代码语言:javascript
复制
2020/04/17 03:58:54 [notice] 18191#18191: signal process started
2020/04/17 03:58:54 [error] 18191#18191: invalid PID number "" in "/run/nginx.pid"
2020/04/17 03:58:59 [notice] 18195#18195: signal process started
2020/04/17 03:59:05 [emerg] 18238#18238: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/04/17 03:59:05 [emerg] 18238#18238: bind() to [::]:80 failed (98: Address already in use)
2020/04/17 03:59:05 [emerg] 18238#18238: bind() to 0.0.0.0:443 failed (98: Address already in use)
2020/04/17 03:59:05 [emerg] 18238#18238: bind() to 0.0.0.0:80 failed (98: Address already in use)
2020/04/17 03:59:05 [emerg] 18238#18238: bind() to [::]:80 failed (98: Address already in use)
2020/04/17 03:59:05 [emerg] 18238#18238: bind() to 0.0.0.0:443 failed (98: Address already in use)
EN

回答 5

Stack Overflow用户

发布于 2018-05-20 23:10:31

看起来你好像有另一台you服务器在运行。尝试停止所有其他all服务器进程并重新启动nginx

票数 2
EN

Stack Overflow用户

发布于 2020-04-23 14:31:24

看起来您有另一个绑定到端口80和443的程序。既然你在ubuntu上,运行sudo lsof -i应该会帮你弄清楚它是什么。

票数 1
EN

Stack Overflow用户

发布于 2020-04-24 15:02:03

解决方案1:

这可能是因为其他一些服务正在使用相同的端口(80和443)。

要识别它,请使用

代码语言:javascript
复制
sudo lsof -i

要过滤端口80和443的上述代码的结果,请使用

代码语言:javascript
复制
sudo lsof -i :80 | grep LISTEN
代码语言:javascript
复制
sudo lsof -i :443 | grep LISTEN

找出哪些服务正在使用您的端口80和443。

解决方案2:

检查您是否安装了其他web服务器,如apache。

如果已安装,请将其删除,然后使用以下命令重新启动nginx

代码语言:javascript
复制
sudo service nginx restart

解决方案3:

检查nginx是否使用了大量内存。

如果操作系统正在使用系统无法处理的RAM,则操作系统将停止服务

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50436181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档