2017-02-17 72 views
12

我對nginx有問題。我嘗試了不同的解決方案,但對我來說沒有任何工作。 這是我的錯誤:Nginx無法啓動(地址已在使用中)

4 [email protected] ~ # sudo service nginx restart        :(
Restarting nginx: nginx: [emerg] bind() to [::]:443 failed (98: Address already in use) 
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use) 
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use) 
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use) 
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use) 
nginx: [emerg] still could not bind() 
nginx. 

你能幫幫我嗎?

+0

嘗試一些在這裏發佈的答案[nginx - nginx:\ [emerg \] bind()to \ [:: \]:80失敗(98:Address alrea dy在使用)](http://stackoverflow.com/questions/14972792/nginx-nginx-emerg-bind-to-80-failed-98-address-already-in-use) –

+0

它看起來像https已經在使用。使用'netstat -tulpn'來找出正在使用它的東西。 'netstat -tulpn'中的 – Donal

+0

沒有在端口443上聽到。而且我在評論中嘗試了所有這些方法。 – Herbert89

回答

22

也許其他進程正在使用指定的端口:

sudo netstat -tulpn 

獲取已使用443進程的PID並與kill命令發送信號。

sudo kill -2 <PID> 

sudo service nginx restart 

Aternatively你可以這樣做:

sudo fuser -k 443/tcp 

確保您不使用舊的語法:

server { 
    listen :80; 
    listen [::]:80; 
} 

上述語法會導致

nginx: [emerg] bind() to [::]:80 failed (98: Address already in use) 

正確的語法:

server { 
    listen 80; 
    listen [::]:80 ipv6only=on; 
} 

server { 
    listen [::]:80; 
} 

上述兩個語法將達到同樣的事情,監聽IPv4和IPv6。

+0

我沒有找到一個程序,使用端口443.這是我的問題。 – Herbert89

+0

'sudo netstat -tulpn'的輸出是什麼? –

+0

這是要評論,但這裏是一個鏈接:http://pastebin.com/QETaUH2F – Herbert89

1

另一種方式(從我的經驗)就是強制退出該端口上運行的過程443

sudo fuser -k 443/tcp 

,或者如果您在端口80運行只需更改端口

sudo fuser -k 80/tcp 

希望它幫助有同樣問題的人

相關問題