我在虚拟机上的nginx正在停止,我找不到原因。
sudo nginx -t -c /etc/nginx/nginx.conf返回
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful还有一些日志:
sudo systemctl status nginx.service日志:
● 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
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)发布于 2018-05-20 23:10:31
看起来你好像有另一台you服务器在运行。尝试停止所有其他all服务器进程并重新启动nginx
发布于 2020-04-23 14:31:24
看起来您有另一个绑定到端口80和443的程序。既然你在ubuntu上,运行sudo lsof -i应该会帮你弄清楚它是什么。
发布于 2020-04-24 15:02:03
解决方案1:
这可能是因为其他一些服务正在使用相同的端口(80和443)。
要识别它,请使用
sudo lsof -i要过滤端口80和443的上述代码的结果,请使用
sudo lsof -i :80 | grep LISTENsudo lsof -i :443 | grep LISTEN找出哪些服务正在使用您的端口80和443。
解决方案2:
检查您是否安装了其他web服务器,如apache。
如果已安装,请将其删除,然后使用以下命令重新启动nginx
sudo service nginx restart解决方案3:
检查nginx是否使用了大量内存。
如果操作系统正在使用系统无法处理的RAM,则操作系统将停止服务
https://stackoverflow.com/questions/50436181
复制相似问题