查看nginx的access.log记录,发现一直都有很多IP POST方式访问wp-login.php文件,很烦人,所以就打算给这个文件设置认证权限访问。
一、用htpasswd命令生成受权帐号和密码文件,命令如下:
root@itkylin.com:~# htpasswd -c /etc/nginx/passwd_www.itkylin.com.db admin
假如你用的系统没有htpasswd命令,请安装apache2-utils软件包,ubuntu系统安装apache2-utils软件包使用如下命令:
root@itkylin.com:~# apt-get install apache2-utils
其它Linux系统请自行查找相关安装说明。
二、修改虚拟主机配置文件,在server {} 段落内server_name行下面添加如下图代码:
你也可以直接复制以下代码:
location ~ ^/wp-login\.php {
auth_basic "Auth System";
auth_basic_user_file /etc/nginx/passwd_www.itkylin.com.db;
location ~ .*\.php?$ {
try_files $uri =404;
fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
三、重启nginx服务就可
这时你会感觉整个世界都清静了,只有通过受权帐号和密码认证才能访问wp-login.php,不论是get还是post访问wp-login.php都返回401。