Ich habe nginx über Ports installiert und mit sudo gestartet. Der Zugriff auf die Nginx-Begrüßungsseite von localhost funktioniert einwandfrei, der Zugriff von einem externen Computer schlägt jedoch fehl.
Wenn Sie von außen eine nmap auf dem Computer erstellen, wird dies deutlich
80/tcp filtered http
Die Mac-Firewall blockiert also eindeutig den Port. Anschließend füge ich die ausführbare Datei nginx zur Liste der Firewall-Ausnahmen hinzu. Die nmap wird jedoch weiterhin als gefilterter Port 80 angezeigt und ich kann nicht auf die Webseite zugreifen. Die genaue Binärdatei in der Liste ist / opt / local / sbin / nginx, was meines Wissens korrekt erscheint
Irgendwelche Ideen, was ich tun soll? Vielen Dank!
PS Durch Ausschalten der Firewall kann ich von außen auf die Website zugreifen. Dies ist jedoch keine ideale Lösung.
sudo lsof -i:80
, um sicherzustellen, dass es wirklich Nginx ist, das das Abhören übernimmt (und das auch) Es lauscht auf allen IPs, nicht nur auf 127.0.0.1).Antworten:
Das hat bei mir funktioniert (OSX 10.9):
Beim Versuch, dies über Symlink zu tun (um zu vermeiden, dass dieser Prozess beim Upgrade von nginx wiederholt wird), wurde der folgende Fehler angezeigt: Die Anwendung ist nach dem Ausführen nicht Teil der Firewall :
quelle
Ich habe seit Ewigkeiten versucht, dies herauszufinden, und schließlich im Terminal Folgendes getan:
Und es schien das Problem zu beheben.
Ich habe die Nginx-Anwendung auch in die Liste der genehmigten Anwendungen in der OS X-Firewall gezogen.
quelle
nginx
damit die Website tatsächlich geladen werden konnte.Ich bin auf dasselbe Problem gestoßen. Ich vermute, dass dies mit dem Master / Worker-Prozessmodell von nginx zu tun hat, das die Appfirewall-Implementierung von Apple verwirrt.
Die Lösung, die ich gefunden habe, besteht darin, appfirewall anzuweisen, den Nginx-Prozess zuzulassen:
Ich kann mich nicht erinnern, ob dies bei Neustarts weiterhin besteht oder nicht. Wenn dies nicht der Fall ist, erstellen Sie eine Startliste in / Library / LaunchAgents, um dies beim Booten zu tun, wenn Sie möchten.
quelle
-t
Option entfernt.ändere deinen $ PATH
lassen System das finden nginx in
/usr/local/Cellar/nginx/nginx-xx/bin/nginx
zunächstquelle
Ich bin auf El Capitan (10.11.6). Sie können manuell
nginx
über die GUI von der Firewall ausschließen . Das hat es für mich gelöst.Gehen Sie zunächst zu den Systemeinstellungen. Gehen Sie dann zu Sicherheit und Datenschutz und klicken Sie auf die Registerkarte Firewall.
Klicken Sie auf die Schaltfläche "Firewall-Optionen" und fügen Sie sie hier
nginx
als ausgeschlossene Anwendung hinzu:Nginx war
/usr/local/Cellar/nginx/1.10.3/bin/nginx
für mich in. Ich konnte im Datei-Explorer in den Systemeinstellungen nicht dazu navigieren. Um dies zu umgehen, habenginx
ich auf meinem Desktop eine Verknüpfung zu erstellt und diese ausgewählt.quelle