2017-02-17 15 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 failed (98: Адрес alrea dy в использовании)] (http://stackoverflow.com/questions/14972792/nginx-nginx-emerg-bind-to-80-failed-98-address-already-in-use) –

+0

Похоже, https уже в использовать. Используйте 'netstat -tulpn', чтобы узнать, что его использует. – Donal

+0

в 'netstat -tulpn' ничего не слышит на порту 443. И я пробовал все эти методы в комментарии. – Herbert89

ответ

22

Возможно другой процесс использует указанный порт:

sudo netstat -tulpn 

Получить PID процесса, который уже использует 443. И послать сигнал с убить команду.

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 

Надежда это помогает кому-то, у кого была такая же проблема.