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

5884
Ariel Nonamë

Я только что установил Nginx Homebrew на 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 Firewall не работает.

Журнал ошибок больше не показывает этого:

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).

4
Это может произойти, если вы ранее установили pow http://pow.cx, он добавляет правило pfctl, которое перенаправляет весь трафик с порта 80 на порт pow. Удаление Pow решает проблему. Можно запустить ngrix и pow вместе, но это немного сложно. dwkns 8 лет назад 1

2 ответа на вопрос

1
JakeGould

The error is as follows:

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

That “Address already in use” says it all: Something else on your system is using port 80. Do you have web sharing enabled or perhaps Apache installed and running? The way you can check this is to run lsof like this on your system:

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

That will strictly show you what process might be using port 80. If you are curious to see what other ports are set to “listen” on your Mac OS X system just run this command:

sudo lsof -i -P 
1
Ariel Nonamë

Rebooted OSX. Worked. I think with linux would be different.

Иногда мы действительно должны думать просто. После 1 часа проблем я увидел это и работал :) Peshraw H. Ahmed 5 лет назад 0