如何通过Nginx.conf允许访问单个IP地址?

时间:2011-12-08 22:54:08

标签: nginx

Nginx,Passenger和Rails在我的Linode上运行得非常漂亮。在我发布之前,我想限制访问权限,因此只有我的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;
        }
      }
    }

2 个答案:

答案 0 :(得分:114)

修改你的nginx.conf

  server {
    listen 80;
    server_name www.foo.bar;

    location / {
      root /path/to/rails/public/;
      passenger_enabled on;

      allow   my.public.ip.here;
      deny    all;
    }
  }

答案 1 :(得分:0)

我知道这是一个古老的方法,但是您经常使用sudo nginx -t来获取更具体的错误消息。