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

MrD*_*erp 55 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;
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

小智 118

修改你的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;
    }
  }
Run Code Online (Sandbox Code Playgroud)

  • 显然,重要的是允许是第一个,拒绝是第二个,否则否认是"更强". (13认同)