首页 文章

重启NGINX失败

提问于
浏览
1

我在Ubuntu 16.04上安装了NGINX并编辑了我的配置 . 当我想用 sudo service nginx restart 重启时,我收到错误:

nginx.service的作业失败,因为控制进程退出并显示错误代码 . 有关详细信息,请参阅“systemctl status nginx.service”和“journalctl -xe” .

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 Mon 2017-01-02 16:07:54 UTC; 15s ago
  Process: 26515 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
  Process: 26510 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 3464 (code=exited, status=0/SUCCESS)

Jan 02 16:07:53 IF-STG-001 nginx[26515]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
Jan 02 16:07:53 IF-STG-001 nginx[26515]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
Jan 02 16:07:53 IF-STG-001 nginx[26515]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
Jan 02 16:07:54 IF-STG-001 nginx[26515]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Jan 02 16:07:54 IF-STG-001 nginx[26515]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
Jan 02 16:07:54 IF-STG-001 nginx[26515]: nginx: [emerg] still could not bind()
Jan 02 16:07:54 IF-STG-001 systemd[1]: nginx.service: Control process exited, code=exited status=1
Jan 02 16:07:54 IF-STG-001 systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Jan 02 16:07:54 IF-STG-001 systemd[1]: nginx.service: Unit entered failed state.
Jan 02 16:07:54 IF-STG-001 systemd[1]: nginx.service: Failed with result 'exit-code'.

为什么我不能重新启动我的nginx实例?我不明白为什么阻止重启

2 回答

  • 0

    错误消息的重要部分是

    bind()到0.0.0.0:80失败(98:地址已在使用中)

    因此,在启动时,nginx无法绑定到端口80,因为某些其他程序已绑定到此端口 . 当其他程序从此套接字退出或解除绑定时,您将只能启动nginx .

    要查找当前绑定此端口的程序,可以以root身份运行此命令(例如,使用 sudo ):

    ss -ntlp "sport = :80"
    
  • 2

    当您在与apache在同一台机器上运行apache服务器时,通常会出现此问题,并且nginx需要运行相同的端口,即80.尝试将nginx端口更改为8080或其他内容 . ie {listen 8080 default_server; listen [::]:8080 default_server;}并重新启动nginx

相关问题