TB-LAB BLOG

坪川研究室ブログです!適当に更新します!

NginxでBasic認証をかけてみた

htpasswdの設定

NginxでローカルのApacheに飛ばしてます.
とりあえずApacheさんの方でBasic認証かけてみようってことで記述したら動いたんだけど認証されなかった!
headerの記述やパーミッションなどあれやこれややったけどだめだったorz
そんでNginx側でかけちゃえと思ってNginx側で設定します.
その時のメモ!

.htpasswdの作成

まず「.htpasswd」を作らないといけないので Apacheが入ってれば

# htpasswd -c /etc/nginx/.htpasswd hoge
New password: 
Re-type new password: 
Adding password for user hoge

でPasswordきかれて登録できる.

Nginxしか入ってないときは

# echo "hoge:`openssl passwd -apr1 YourPassword`" > /etc/nginx/.htpasswd

で作れるはずです.
出力先パスに確認しにいってください.
できていたらcat か lessで自分が作ったユーザーが作成されているのを確認してください.
※この時の注意してほしいこと!
* 空白文字は使えない
* #(シャープ)は使えない
* :(コロン)は使えない

ちなみに僕はこれではまりました.うほ.

confの設定

Nginxの場合(reverse)

server {
        listen hoge.huga.piyo.com:80;
        root /var/www/html;
        ・・・
        location / {
                auth_basic "Do you have permission?";
                auth_basic_user_file /etc/nginx/.htpasswd;
                proxy_pass http://address:port;
        }
        ・・・
}

これでいいはず!

ちなみにApacheの場合

<Directory "/var/www/hoge">
        AuthType Basic
        AuthName "hoge Zone"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
</Directory>

みたいな感じで後は自分がつけたい設定をするだけー

P.S.

シャープ使えたら嬉しかった