查看nginx的access.log记录,发现一直都有很多IP POST方式访问wp-login.php文件,很烦人,所以就打算给这个文件设置认证权限访问。
一、用htpasswd命令生成授权帐号和密码文件,命令如下:
htpasswd -c /etc/nginx/passwd_www.itkylin.com.db admin
如果你用的系统没有htpasswd命令,请安装apache2-utils软件包,ubuntu系统安装apache2-utils软件包使用如下命令:
apt-get install apache2-utils
其它Linux系统请自行查找相关安装文档。
二、修改虚拟主机配置文件,在server {} 段落内server_name行下面增加如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 | 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。