Comment puis-je permettre l'accès à une seule adresse IP par l'intermédiaire de Nginx.conf?

Nginx, des Passagers, et les Rails sont en cours d'exécution à merveille sur mon Linode. Avant de me lancer, je voudrais limiter l'accès, ainsi que mon IP pouvez afficher le site.

J'ai essayé de refuser l'accès à tous, et permettre l'accès à seulement mon IP dans Nginx. Il n'refuser l'accès à tous, mais je ne peux pas me le permettre pour le travail. J'ai vérifié pour s'assurer que l'adresse IP, je suis en précisant dans nginx.conf est mon ip publique correcte.

Voici mon nginx.conf. J'ai redémarré nginx après avoir modifié le fichier, et testé quelques autres changements qui a fonctionné comme prévu (par exemple, j'ai enlevé refuser toutes et a été en mesure d'accéder au site, comme prévu).

Ce que je fais mal?

    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;
        }
      }
    }
  • Pas du tout familier avec nginx config, mais avez-vous essayé en changeant l'ordre? J'imagine qu'il fait d'accorder l'accès à votre adresse ip, puis en refusant l'accès à tous. Votre IP est inclus dans tous, il est donc essuyant le permettre.
  • Malheureusement, il ne fonctionne pas. À partir de la nginx documentation: "Notez que l'ordre de l'autoriser/refuser est de la plus haute importance. Si vous êtes en provenance de l'Apache monde, vous pourriez être tenté de penser que vous pouvez basculer l'accès des directives de l'ordre et tout se travail. En fait, il n'est pas. Changement de l'ordre dans l'exemple ci-dessus a pour conséquence d'empêcher l'accès à toutes les adresses."
InformationsquelleAutor MrDerp | 2011-12-08