nginx のシンタックスハイライトが効くと聞いて
IP アドレスホワイトリスト+それ以外からはbasic認証、というのをやりたいと思ったんだけど、auth_basic が if の中に入れられないので仕方なくこうしたという話。
perl_set $allowed ' sub { my $r = shift; my $remote_addr = $r->remote_addr; return "1" if $remote_addr =~ /^127./; return "0"; } ';
server { listen 80; location / { if ($allowed ~ "1") { # no authentication proxy_pass http://app; } # basic auth proxy_pass http://localhost:1080; } } server { listen 1080; location / { auth_basic "Authentication Required"; auth_basic_user_file "/etc/nginx/htpasswd"; proxy_pass http://app; } }
UNIX ソケットでいいとかそういうのは置いといて、どうやるのがいいんだろう。if 使ってるのも evil だからよくない。もといい方法知ってたら教えて下さい。