nginxでBasic認証を設定
apacheで.htaccessと.htpasswdを使って簡易User認証をしていたように、nginxでも実現する方法。
環境: CentOS 5.8, nginx 1.2.0
参考にしたSiteは下記。
- HttpAuthBasicModule | nginx wiki
- apache のかわりにnginxを使ってみる(7) nginx でBasic認証(ユーザ名、パスワードを求める )するには | レンタルサーバー・自宅サーバー設定・構築のヒント
まずは前の記事を参考に.htpasswdを作成する作業。
# cd /var/www/
# htpasswd -c /var/www/.htpasswd user
apacheがinstallされていない場合は下記を参考に設定する。
次にnginxのconfを設定
# vi /etc/nginx/conf.d/01_hoge.conf
auth_basic "Secret Area";
auth_basic_user_file "/var/www/.htpasswd";
これを追記。設定を再読み込み。
# /etc/rc.d/init.d/nginx reload
ちなみにnginxのconf全文は下記。
server {
listen 80;
server_name dev.hoge.com;root /var/www;
index index.php index.html index.htm;
charset utf-8;location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }auth_basic "Secret Area";
auth_basic_user_file "/var/www/.htpasswd";location / {
}location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
include fastcgi_params;
client_max_body_size 20M;
}location ~ /\. {
deny all;
access_log off;
log_not_found off;
}# if the file is not found, forwarded to index.php (permalinks)
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
}
< 2012/09/26 Modified >
auth_basicとauth_basic_user_fileはlocationの外に出さないとsite全体に適用されないみたい。
< Related Posts >