nginx: [error] invalid PID number ““ in “/run/nginx.pid“

发布于:2024-06-07 ⋅ 阅读:(79) ⋅ 点赞:(0)

两种问题,我自己碰到的情况

./nginx -s reload

执行命令后报错
nginx: [error] invalid PID number ““ in “/run/nginx.pid“

第一种情况,pid被注释了

/usr/local/nginx/conf/nginx.conf

#user  nobody;
worker_processes  1;

// 可能是这里被注释了
pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

		// ...省略
    }


    # HTTPS server
    server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      证书文件夹/证书文件夹下的.pem;
        ssl_certificate_key  证书文件夹/证书文件夹下的.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }
}

第二种情况 杀死 80 进程,重新启动nginx

root@VM-20-12-ubuntu:/usr/local/nginx/sbin# ./nginx

nginx: [emerg] bind() to 0.0.0.0:80 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:80 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:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

启动 nginx 报错,说是 80 端口已经在启动中了,重启也会报标题的错误

直接查看全部进程,netstat -ntlp

root@VM-20-12-ubuntu:/usr/local/nginx/sbin# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:6016          0.0.0.0:*               LISTEN      64667/sshd: root@pt 
tcp        0      0 127.0.0.1:6017          0.0.0.0:*               LISTEN      74895/sshd: root@pt 
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      81236/sshd: root@pt 
tcp        0      0 127.0.0.1:6012          0.0.0.0:*               LISTEN      8904/sshd: root@pts 
tcp        0      0 127.0.0.1:6014          0.0.0.0:*               LISTEN      37466/sshd: root@pt 
tcp        0      0 127.0.0.1:6015          0.0.0.0:*               LISTEN      30768/sshd: root@pt 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      759/systemd-resolve 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17945/nginx: master 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      881/sshd: /usr/sbin 
tcp6       0      0 ::1:6016                :::*                    LISTEN      64667/sshd: root@pt 
tcp6       0      0 ::1:6017                :::*                    LISTEN      74895/sshd: root@pt 
tcp6       0      0 ::1:6010                :::*                    LISTEN      81236/sshd: root@pt 
tcp6       0      0 ::1:6012                :::*                    LISTEN      8904/sshd: root@pts 
tcp6       0      0 ::1:6014                :::*                    LISTEN      37466/sshd: root@pt 
tcp6       0      0 ::1:6015                :::*                    LISTEN      30768/sshd: root@pt 
tcp6       0      0 :::23333                :::*                    LISTEN      785/node            
tcp6       0      0 :::3306                 :::*                    LISTEN      1671/mysqld         
tcp6       0      0 :::24444                :::*                    LISTEN      784/node            
tcp6       0      0 :::33060                :::*                    LISTEN      1671/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      881/sshd: /usr/sbin 

可以看到 80 端口正在运行

root@VM-20-12-ubuntu:/usr/local/nginx/sbin# kill 17945
root@VM-20-12-ubuntu:/usr/local/nginx/sbin# ./nginx

杀掉 80 进程后重新启动 nginx,就成功了

我是在配置 HTTPS,我这边输入 https://***.** 我的网站也成功显示 https ,链接内容了

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到