千家信息网

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

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,在一些业务不能够直接提供给外部人员查看,只能指定某些人来查看。为了安全起见,限定访问ip,外加在页面上做个简单的登入页面认证。操作很简单,在这里做个简单的记录,以便后续查看回忆。操作系统CentOS
千家信息网最后更新 2025年02月02日Nginx web 网站访问限制登入验证

在一些业务不能够直接提供给外部人员查看,只能指定某些人来查看。为了安全起见,限定访问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-toolshttpd-tools-2.4.6-45.el7.centos.4.x86_64


接下来就创建帐号密码

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


查看是否创建成功

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

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


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

$ vim /data0/work/nginx/conf/nginx.confserver {        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 -tnginx: the configuration file /data0/work/nginx/conf/nginx.conf syntax is oknginx: configuration file /data0/work/nginx/conf/nginx.conf test is successful


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

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


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


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


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

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

0