注意,nginx 的 http auth basic 的密碼是用 crypt(3) 加密的,而apache是md5加密。所以生成時(shí):
htpasswd -b -c site_pass username password
例如:基于整個(gè)網(wǎng)站的認(rèn)證,auth_basic在php解釋之前。
server {
listen 80;
server_name simplicitylane.com 0597seo.com;
root /wwwroot/0597seo.com;
index index.html index.htm index.php;
auth_basic "auth";
auth_basic_user_file /usr/local/nginx/auth/nginx_passwd;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
access_log /logs/0597seo.com_access.log main;
}
針對(duì)目錄的認(rèn)證,在一個(gè)單獨(dú)的location中,并且在該location中嵌套一個(gè)解釋php的location,否則php文件不會(huì)執(zhí)行并且會(huì)被下載。
auth_basic在嵌套的location之后。
server {
listen 80;
server_name simplicitylane.com 0597seo.com;
root /wwwroot/0597seo.com;
index index.html index.htm index.php;
location ~ ^/phpMyAdmin/.* {
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
auth_basic "auth";
auth_basic_user_file /usr/local/nginx/auth/auth_phpMyAdmin;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
access_log /logs/0597seo.com_access.log main;
}
這里注意,就是location ~ ^/phpMyAdmin/.* {…} 保護(hù)phpMyAdmin目錄下的所有文件。
如果你只設(shè)了/phpMyAdmin/ 那么直接輸入/phpMyAdmin/index.php還是可以訪問(wèn)并且運(yùn)行的。
^/phpMyAdmin/.* 意為保護(hù)該目錄下所有文件。
發(fā)表評(píng)論