Не могу заставить Nginx работать на порту 80. Работает нормально на любом другом порту

Не могу заставить Nginx работать на порту 80. Работает нормально на любом другом порту

Я только что настроил Homebrew Nginx на Mac OS X 10.11 (El Capitan).

Если я настрою конфигурацию Ngnix следующим образом:

listen      127.0.0.1:8080;

listen      127.0.0.1:81;

listen      127.0.0.1:75;

Это сработает. Но если я вставлю туда это:

listen      127.0.0.1:80;

Это не так. Мне откажут в подключении, если я пойдуhttp://127.0.0.1

psговорит, что Nginx запущен, но netstat -a | grep nginxили netstat -a | grep 80говорит, что это не так.

Конечно, запускать это как root (не то чтобы это было нужно для запуска на:8080

И брандмауэр Mac OS X не запущен.

Журнал ошибок больше не отображает следующее:

2015/10/10 17:16:19 [emerg] 23906#0: bind() to 0.0.0.0:80 failed (48: Address already in use)

Есть идеи? Я МОГУ работать с этим, запущенным на 8080(любопытно, что когда я запускаю на 8080, он открывает 80порт и перенаправляет его на 80).

решение1

Перезагрузил OSX. Заработало. Думаю, с linux было бы по-другому.

решение2

Ошибка следующая:

2015/10/10 17:16:19 [emerg] 23906#0: bind() to 0.0.0.0:80 failed (48: Address already in use)

Этот «Адрес уже используется» говорит сам за себя: что-то еще в вашей системе использует порт 80. У вас включен общий доступ к веб-сайту или, может быть, установлен и запущен Apache? Вы можете проверить это, запустив lsofв своей системе следующее:

sudo lsof -i -P | grep -i "80"

Это четко покажет вам, какой процесс может использовать порт 80. Если вам интересно узнать, какие еще порты настроены на «прослушивание» в вашей системе Mac OS X, просто выполните эту команду:

sudo lsof -i -P

А если вы просто хотите проверить, используется ли порт 80, вы можете использовать эту вариацию команды, lsofкоторая позволяет проверять эти данные без фильтрации вывода grep:

sudo lsof -nPL -iTCP:80

решение3

В системах на базе Unix, таких как MacOS, вы просто не сможете запускать службы на портах ниже 1024 без привилегий суперпользователя. Но когда вы перезагружаете компьютер, служба nginx автоматически перезапускается с суперпользователем, поэтому она работает.

Следующая команда должна решить проблему:

sudo brew services restart nginx

решение4

Я решил эту проблему (у меня MacBook Air с чипом M1):

  1. Удалить httpd (если есть)
  2. Отключить апачсвязь
  3. Установить nginx
  4. Измените порт на 80 с/usr/local/etc/nginx/nginx.conf

Связанный контент