Добрый день.
Nginx стоит в качестве фронтэнда к Apachу.
Потребовалось разграничить доступ к некоторым файлам по IP.
Делаю так:
server {
…
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
location / {
proxy_pass http://127.0.0.1:80/;
location ~ script1\.pl$ { deny all; }
location ~ script2\.pl$ { allow 192.168.0.0/24; deny all; }
location ~ script3\.pl$ { allow 192.168.0.0/24; deny all; }
}
}
После этого при заходе на http:// test.server.ru/cgi-bin/script1.pl в лог начинает сыпаться:
2007/12/24 18:47:58 [error] 37481#0: *209
open() "/usr/local/etc/nginx/html/cgi-bin/script2.pl" failed (2: No
such file or directory), client: 212.45.28.30, server: test.server.ru, URL:
"/cgi-bin/script1.pl", host: " test.server.ru "
На сколько понял вложенные location заменяют способ
обработки.
Скажите как более грамотно ограничивать доступ к файлам по
айпишникам ? потому что файлов будет около 10 шт. и плодить в нутрии каждого
проксипас не охота.
--
Alex Petrochenko