Magic with nginx geo and autoindex on/off
Long story short: nginx not support ".htaccess" and some times is it a problem. We have directory and we need to show index only for specific IP's.
Nginx config based on small nginx config.
We have fake location "autoindex_redirect" only for our IP's where autoindex is enabled and this location protected by "internal". This tells nginx not allow any request from the outside. And out of "server {}" directive, in any place inside "http {}", we need create geo list
Result for our IP's
Nginx config based on small nginx config.
if ($check_ip) { rewrite ^/(.*)$ /autoindex_redirect/$1 last; } location ~ ^/autoindex_redirect/(.*)$ { internal; alias /var/www/repo/$1; autoindex on; } location / { autoindex off; }
We have fake location "autoindex_redirect" only for our IP's where autoindex is enabled and this location protected by "internal". This tells nginx not allow any request from the outside. And out of "server {}" directive, in any place inside "http {}", we need create geo list
geo $check_ip { default 0; 111.111.111.111 1; 111.111.222.111 1; }Why "geo" and not "map"? Because with geo you can use ranges and networks.
111.111.111.0/24 1; 111.111.222.123-111.111.222.152 1;
Result for our IP's
Comments
Post a Comment