Nginx funktioniert nicht auf Port 80. Funktioniert problemlos auf jedem anderen Port

Nginx funktioniert nicht auf Port 80. Funktioniert problemlos auf jedem anderen Port

Ich habe gerade Homebrews Nginx auf Mac OS X 10.11 (El Capitan) eingerichtet.

Wenn ich meine Ngnix-Konfiguration wie folgt einstelle:

listen      127.0.0.1:8080;

listen      127.0.0.1:81;

listen      127.0.0.1:75;

Es wird funktionieren. Aber wenn ich das hier eingebe:

listen      127.0.0.1:80;

Das wird es nicht. Ich werde die Verbindung verweigert bekommen, wenn ich gehehttp://127.0.0.1

pssagt, dass Nginx läuft, aber netstat -a | grep nginxoder netstat -a | grep 80sagt, dass es nicht läuft.

Das Ausführen als Root ist natürlich notwendig (nicht, dass ich das für den Betrieb auf:8080

Und die Mac OS X-Firewall läuft nicht.

Das Fehlerprotokoll zeigt dies nicht mehr an:

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

Irgendwelche Ideen? Ich KANN damit arbeiten, wenn es auf läuft 8080(seltsamerweise 8080öffnet es den 80Port und leitet es auf um , wenn ich es auf ausführe 80).

Antwort1

OSX neugestartet. Hat geklappt. Ich denke, bei Linux wäre es anders.

Antwort2

Der Fehler lautet wie folgt:

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

Die „Adresse wird bereits verwendet“ sagt alles: Etwas anderes auf Ihrem System verwendet Port 80. Haben Sie Web-Sharing aktiviert oder ist Apache installiert und läuft? Sie können dies überprüfen, indem Sie lsofFolgendes auf Ihrem System ausführen:

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

Dadurch wird Ihnen genau angezeigt, welcher Prozess Port 80 verwenden könnte. Wenn Sie neugierig sind und wissen möchten, welche anderen Ports auf Ihrem Mac OS X-System auf „Abhören“ eingestellt sind, führen Sie einfach diesen Befehl aus:

sudo lsof -i -P

Und wenn Sie nur prüfen möchten, ob Port 80 verwendet wird, können Sie diese Variante des lsofBefehls verwenden, mit der Sie dies prüfen können, ohne die Ausgabe zu filtern grep:

sudo lsof -nPL -iTCP:80

Antwort3

Auf Unix-basierten Systemen wie MacOS können Sie ohne Superuser-Berechtigung keine Dienste auf Ports unter 1024 ausführen. Wenn Sie Ihren Computer jedoch neu starten, wird der Nginx-Dienst automatisch mit Superuser neu gestartet, sodass es funktioniert.

Der folgende Befehl sollte das Problem lösen:

sudo brew services restart nginx

Antwort4

Ich habe dieses Problem gelöst (ich habe ein MacBook Air mit M1-Chip):

  1. Entfernen Sie httpd (falls vorhanden)
  2. Apache deaktivierenVerknüpfung
  3. Installieren Sie nginx
  4. Ändern Sie den Port auf 80 von/usr/local/etc/nginx/nginx.conf

verwandte Informationen