
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
ps
sagt, dass Nginx läuft, aber netstat -a | grep nginx
oder netstat -a | grep 80
sagt, 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 80
Port 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 lsof
Folgendes 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 lsof
Befehls 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):
- Entfernen Sie httpd (falls vorhanden)
- Apache deaktivierenVerknüpfung
- Installieren Sie nginx
- Ändern Sie den Port auf 80 von
/usr/local/etc/nginx/nginx.conf