揮発性のメモ2

http://d.hatena.ne.jp/iww/

NGINXでCGIにもBASIC認証をかける

.
|-- index.html
|-- hutsu.html
|-- normal.cgi
`-- admin
    |-- index.html
    |-- himitsu.html
    `-- special.cgi

拡張子cgifastcgiで動かしつつ、adminの下にはBASIC認証をかけたい。

server {
    # fastcgiパラメータ読み込み
    include /etc/nginx/fastcgi_params;

    # HTML用の設定
    location / {
        root /var/www/html/;

        # adminの下はBASIC認証
        location /admin/ {
            auth_basic "admin";
            auth_basic_user_file /etc/jikken/htpasswd.txt;
        }
    }

    # CGI用の設定
    location ~ \.cgi$ {
        root /var/www/html/;

        fastcgi_pass  unix:/var/run/fcgiwrap.socket; #★

        # adminの下はBASIC認証
        location ~ /admin/ {
            fastcgi_pass  unix:/var/run/fcgiwrap.socket; #★

            auth_basic "admin";
            auth_basic_user_file /etc/jikken/htpasswd.txt;
        }
    }
}

1.3 nginxの思想
locationディレクティブは入れ子に出来る。 そして、その中身はだいたい継承される。
しかし、fastcgi_passはなんでか継承されないので いちいち書く必要がある。