Ошибка Nginx-error: bind() до 0.0.0.0:80. доступ запрещен

Я пытаюсь запустить Nginx, но я получаю сообщение об ошибке ниже:

bind() до 0.0.0.0:80 не удалось (10013: попытка получить доступ к сокет, запрещенный его разрешениями доступа)

Просьба предоставить некоторую помощь о том, какие изменения мне нужно сделать, чтобы заставить ее работать?

Я пробовал работать на портах, отличных от 80, и он работает. но мне нужно, чтобы он работал на 80.

Примечание. Я запускаюсь в Windows 7 с командной строкой, запущенной в качестве администратора.

Ответ 1

Если порт уже используется, вы можете изменить порт по умолчанию 80 на другой порт, который не используется (может быть, 8070). В conf\nginx.conf:

server {
    listen       8070;
    ...
}

После запуска вы можете поразить localhost: 8070.

Ответ 2

Вы должны быть администратором или root, чтобы связывать порт 80. Что-то, что вы можете сделать, если вы не можете запускать от имени root, заключается в том, что ваше приложение прослушивает другой порт, например 8080, а затем перенаправляет сообщения, направленные на 80 8080. Если вы используете Linux, вы перенаправляете сообщения с помощью iptables.

Ответ 3

Возможно, порт 80 уже используется. Чтобы проверить, используется ли он, откройте командную строку и введите netstat –anb и найдите порт 80. После того как вы обнаружили приложение или службу, используйте диспетчер задач, чтобы его убить.

Если это сервис, использующий его, прекратите услугу изящно, запустив services.msc из команды run.

Ответ 4

nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

У меня была похожая проблема, мой 80 порт слушал IIS (windows machine). Остановка IIS освободила 80 портов.

Проблема была решена... !!