我们的nginx端口一般都是对外开放的,所以有一定程度上有被别人扫描的风险,所以为了减少被扫描的风险,我们可以配置一个nginx的用户登录验证;
用户验证登录需要nginx的一个模块:ngx_http_auth_basic_module
我们使用yum的方式安装的时候是自动配置了这个模块,如果使用的是二进制安装包安装的话,我们在编译的时候需要指定一下这个模块;
接下来是配置的过程:
首先查看该htpasswd命令是否已经安装:htpasswd -h ,如果出现有一些提示信息的时候说明这个时候是已经安装过了;
如果没有安装过的话,可以通过命令:
第一种是centos的,第二种是ubuntu的;
yum -y install httpd-tools
apt-get install apache2-utils
安装完成之后,我们去nginx的配置文件中进行配置一下内容:
auth_basic "Auth access!";
auth_basic_user_file /etc/nginx/auth_conf;
配置的位置如下图所示:
配置完成之后;
可以使用 nginx -t进行检测;
nginx -s reload;重新加载配置文件;
然后是开始添加用户名和密码:
htpasswd -cmp /etc/nginx/auth_conf 用户名 密码
第一次执行这个命令的时候需要加 -c参数 ,会创建一个名为auth_conf的文件,如果后续还想往里边加用户名和内容的话,就把-c参数去掉,如果加上的话会将之前的文件覆盖;
-m参数的话是会把密码加密成MD5值;
-p是可以在这条命令输入密码,如果不加的话只能输入一个用户名,密码进行交互式输入;
htpasswd -mp /etc/nginx/auth_conf 用户名 密码
接着就会在/etc/nginx下生成一个auth_conf的文件,然后里边就有我们刚才创建的用户名密码(密码已经被加密了)