寶塔控制面板nginx: “[emerg] still could not bind()” 錯誤的解決方法
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
今天蹦哥說他服務器nginx老是無緣無故的就死了,而且需要重啟服務器才可以,然后看日志發現了以下錯誤;
錯誤提示內容為:第一個方式:跟端口有關系
Jan 03 14:05:52 iZ28ujmpafrZ nginx[13470]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Jan 03 14:05:52 iZ28ujmpafrZ systemd[1]: nginx.service: control process exited, code=exited status=1
Jan 03 14:05:52 iZ28ujmpafrZ nginx[13470]: nginx: [emerg] still could not bind()
Jan 03 14:05:52 iZ28ujmpafrZ systemd[1]: Failed to start The nginx HTTP and reverse proxy server.
Jan 03 14:05:52 iZ28ujmpafrZ systemd[1]: Unit nginx.service entered failed state.
Jan 03 14:05:52 iZ28ujmpafrZ systemd[1]: nginx.service failed.
上面提示80端口無法綁定,用命令?netstat -ntpl
?或?netstat -ntlp|grep 80
?查看端口占用情況
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13159/nginx: worker tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1541/sshd tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 11260/php-fpm: mast tcp6 0 0 :::80 :::* LISTEN 13159/nginx: worker
這里看到被nginx占用了,但是這時候的nginx我試了既不能停止也不能啟動/重啟它的服務,不得不kill掉
killall -9 nginx
這時候還要注意的是?/etc/nginx/nginx.conf?
中的(筆者沒有遇到這個問題,直接忽略跳到重啟nginx成功解決問題):
listen [::]:80 default_server;
這句配置也會導致這個錯誤,我們可以注釋掉或寫成
listen [::]:80 ipv6only=on default_server;
最后成功重啟nginx
systemctl restart nginx
===============================================
二跟權限有關系:按照以上的方法不能解決,請看下所有web網站目錄是不是為777如果都設置為7777不在出現問題,就說明跟權限有關系;
==========================================================
三、跟默認timeout有關系;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
把以上timeout默認300值變大一些嘗試一下;
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!