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