Nginx、Passenger、およびRailsは、私のLinodeで美しく動作しています。私が立ち上げる前に、自分のIPだけがサイトを閲覧できるようにアクセスを制限したいと思います。Nginx.conf経由で単一のIPアドレスへのアクセスを許可するにはどうしたらいいですか?
私はすべてにアクセスを拒否しようとしましたが、Nginxでは自分のIPにしかアクセスできませんでした。それはすべての人へのアクセスを拒否しますが、許可を得ることができません。私はnginx.confで指定しているIPアドレスが私の正しいパブリックIPであることを確認しました。
ここに私のnginx.confがあります。私はファイルを編集した後にnginxを再起動し、期待どおりに機能する他の変更をテストしました(たとえば、すべてを拒否し、期待どおりにサイトにアクセスできました)。
私は間違っていますか?
http {
passenger_root /path/to/passenger-3.0.11;
passenger_ruby /path/to/ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name www.foo.bar;
root /path/to/rails/public/;
passenger_enabled on;
location/{
allow my.public.ip.here;
deny all;
}
}
}
ないnginxの設定ファイルを持つすべてのこと馴染みのごnginx.confを変更しますが、順序を切り替える試してみましたか?私はそれがあなたのipへのアクセスを許可し、そしてすべての人へのアクセスを拒否していることを想像するでしょう。あなたのIPはすべてに含まれているので、許可を拭き取っています。 – Corbin
残念ながら、それはうまくいきませんでした。 [nginx documentation](http://wiki.nginx.org/HttpAccessModule)から: "拒否/許可の順序が最も重要であることに注意してください。あなたがApacheの世界から来ているなら、あなたは上記の例の順序を切り替えると、すべてのアドレスへのアクセスが拒否された結果になります。 – MrDerp