Nginx web 网站访问限制登入验证

  • 来源:网络
  • 更新日期:2020-07-15

摘要:建站服务器 在一些业务不能够直接提供给外部人员查看,只能指定某些人来查看。为了安全起见,限定访问ip,外加在页面上做个简单的登入页面认

建站服务器

在一些业务不能够直接提供给外部人员查看,只能指定某些人来查看。为了安全起见,限定访问ip,外加在页面上做个简单的登入页面认证。

操作很简单,在这里做个简单的记录,以便后续查看回忆。


操作系统CentOS 7.2

nignx 1.10.1

首先我们用Nginx提供HTTP的Basic Auth功能,配置了需要输入的用户名和密码,才能访问网站。

我们使用htpasswd来生成密码信息,就先要安装httpd-tools,因在httpd-tools中包含了htpasswd命令

我们要用在httpd-tools中htpasswd命令,来设置帐号密码

一般安装了httpd都会有。若没有就yum install -y httpd-tools安装一下

查看本地服务器是否安装了httpd-tools,

$ rpm -qa | grep httpd-tools
httpd-tools-2.4.6-45.el7.centos.4.x86_64


接下来就创建帐号密码

$ htpasswd -c /data0/work/nginx/passwd.db test
New password: 
Re-type new password: 
Adding password for user test


查看是否创建成功 

$ cat  /data0/work/nginx/passwd.db
test:$apr1$QroBUTZr$UNtXwv5nS3/jtvTCIw96h/

发现帐号已存在,且为加密非明文密码


那我们就在nginx配置档里进行添加设定了

$ vim /data0/work/nginx/conf/nginx.conf
server {
        listen  80 ;
        server_name test.xxx.com;
        charset utf-8;
        auth_basic secrect;   ##加
        auth_basic_user_file /data0/work/nginx/passwd.db;  ##加
location / {
        root /data0/work/nginx/html/;
        index index.html;
        ##限定可访问网站的ip
        allow  39.28.0.0/16;
        allow  47.29.0.0/16;
        allow  120.83.0.0/16;
        allow  202.6.0.0/16;
        deny all;
        }
}


检验nginx配置是否有误

$ /data0/work/nginx/sbin/nginx -t
nginx: the configuration file /data0/work/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /data0/work/nginx/conf/nginx.conf test is successful


如果没有问题的话,重新加载nginx服务

$ /data0/work/nginx/sbin/nginx -s reload


访问网站页面,会跳出身份验证


用错误帐号或密码访问网站,会一直进不去,取消登入后,会跳出下列画面


非指定访问ip来访问网站,直接出现403拒绝访问

从以上结果上来看,设定符合要求,设置成功!

新网虚拟主机