2017-02-17 63 views
12

Mam problem z nginx. Próbowałem różnych rozwiązań, ale dla mnie nic nie działa. To jest mój błąd:Nginx nie uruchamia się (adres już jest w użyciu)

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. 

Czy możesz mi pomóc?

+0

Wypróbuj niektóre z zamieszczonych tutaj odpowiedzi [nginx - nginx: \ [emerg \] bind() na \ [:: \]: 80 nie powiodło się (98: Adres alrea w użyciu)] (http://stackoverflow.com/questions/14972792/nginx-nginx-emerg-bind-to-80-failed-98-address-already-in-use) –

+0

Wygląda na to, że https jest już w posługiwać się. Użyj 'netstat -tulpn', aby dowiedzieć się, co go używa. – Donal

+0

w 'netstat -tulpn' nic nie słychać na porcie 443. I wypróbowałem wszystkie te metody w komentarzu. – Herbert89

Odpowiedz

22

Prawdopodobnie inny proces używa określonego portu:

sudo netstat -tulpn 

Uzyskaj PID procesu, który już przy użyciu 443. I wysłać sygnał z poleceniem kill.

sudo kill -2 <PID> 

sudo service nginx restart 

Aternatively można zrobić:

sudo fuser -k 443/tcp 

Upewnij się, że nie używaj starej składni:

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

Powyższa składnia spowoduje

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

Poprawna składnia:

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

lub

server { 
    listen [::]:80; 
} 

Zarówno powyżej składni będzie osiągnąć to samo, słuchanie zarówno IPv4 i IPv6.

+0

Nie znajduję jednego programu, który używa Port 443. To jest mój problem. – Herbert89

+0

jaki jest wynik działania 'sudo netstat -tulpn'? –

+0

Tęsknie za tym komentarzem, ale tutaj jest link: http://pastebin.com/QETaUH2F – Herbert89

1

Innym sposobem (z mojego doświadczenia) jest po prostu zmusić zakończyć proces, który działa na tym porcie 443

sudo fuser -k 443/tcp 

lub, jeśli działa na porcie 80 wystarczy zmienić port

sudo fuser -k 80/tcp 

Nadziei pomaga komuś, kto miał ten sam problem: