ポートを使用してnginxをインストールし、Sudoで起動しました。ローカルホストからnginxウェルカムページへのアクセスは完全に機能しますが、外部コンピューターからのアクセスは失敗します。
コンピュータで外部からnmapを実行すると、
80/tcp filtered http
したがって、明らかにMacファイアウォールがポートをブロックしています。次に、nginx実行可能ファイルをファイアウォール例外リストに追加しますが、nmapは引き続きポート80がフィルタリングされていると表示され、Webページにアクセスできません。リストにある正確なバイナリは/ opt/local/sbin/nginxで、私の知る限り正しいようです。
私が何をすべきかアイデアはありますか?ありがとう!
P.S.ファイアウォールをオフにすると、外部からWebサイトにアクセスできますが、それは理想的なソリューションではありません。
これは私のために働いた(OSX 10.9):
Sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/nginx/1.4.4/bin/nginx
Sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/Cellar/nginx/1.4.4/bin/nginx
(nginxがアップグレードされたときにこのプロセスをやり直さないようにするために)シンボリックリンクを介して実行しようとすると、次のエラーが発生しました:アプリケーションはファイアウォールの一部ではありません実行後:
Sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/bin/nginx
何年もの間これを理解しようとしていて、最終的にはターミナルで次のことをしました:
$ Sudo /usr/libexec/ApplicationFirewall/socketfilterfw --remove /usr/local/Cellar/nginx/1.10.0/bin/nginx
Application at path ( /usr/local/Cellar/nginx/1.10.0/bin/nginx ) removed from firewall
$ Sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/nginx/1.10.0/bin/nginx
The application is already a part of the firewall
$ Sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/Cellar/nginx/1.10.0/bin/nginx
Incoming connection to the application is permitted
そして、それは問題を解決したようでした。
また、nginxアプリケーションをOSXファイアウォールの承認済みアプリケーションリストにドラッグしました。
私はElCapitan(10.11.6)を使用しています。 GUIを使用して、ファイアウォールからnginx
を手動で除外できます。これは私のためにそれを解決しました。
まず、システム環境設定に移動します。次に、[セキュリティとプライバシー]に移動し、[ファイアウォール]タブをクリックします。
[ファイアウォールオプション]ボタンをクリックし、ここで除外アプリケーションとしてnginx
を追加します。
Nginxは私にとって/usr/local/Cellar/nginx/1.10.3/bin/nginx
にありました。システム環境設定のファイルエクスプローラーでこれに移動できなかったので、それを回避するために、デスクトップでnginx
へのショートカットを作成し、それを選択しました。
私はこれと同じ問題に遭遇しました。 Appleのappfirewall実装を混乱させるnginxのマスター/ワーカープロセスモデルに関係しているのではないかと思います。
私が見つけた解決策は、appfirewallにnginxプロセスを許可するように指示することです。
$ Sudo /usr/libexec/ApplicationFirewall/socketfilterfw -t nginx
これが再起動後も続くかどうかは覚えていません。そうでない場合は、必要に応じて、/ Library/LaunchAgentsに起動plistを作成して起動時にこれを実行します。
$ PATHを変更します
最初に/usr/local/Cellar/nginx/nginx-xx/bin/nginx
でnginxを見つけましょう