nginx的访问控制

 


一、基于Basic Auth认证与基于IP的访问控制

  一、基于Basic Auth认证

  Nginx提供HTTP的Basic Auth功能,配置了Basic Auth之后,需要输入正确的用户名和密码之后才能正确的访问网站。

  1、安装httpd-tools,用htpasswd来生成密码信息

  首先要安装httpd-tools,在httpd-tools中包含了htpasswd命令。

yum install -y httpd-tools

  2、创建一个用户,然后基于这个用户通过htpasswd命令生成用户名及对应密码数据库文件

复制代码
#创建用户
useradd webuser

#创建密码管理目录
mkdir -p /etc/nginx/auth/

#创建密码
# htpasswd -c /etc/nginx/auth/passwd.db webuser //创建认证信息,webuser 为认证用户名 
New password: *******  //输入认证密码 web@user
Re-type new password: ********  //再次输入认证密码 web@user
Adding password for user webuser

#修改网站认证数据库权限
chmod 755 /etc/nginx/auth/passwd.db  

#修改网站认证数据库属主和属组 
chown root:root /etc/nginx/auth/passwd.db

#查看通过htpasswd生成的密码为加密格式 
#cat /etc/nginx/auth/passwd.db
wyl:r5IXRXWSmlBk6
复制代码

  2、编辑nginx的配置文件

复制代码
server {
     listen       80;
     server_name  localhost;

     client_max_body_size    151m;

   location / {
         auth_basic "s1";  #虚拟主机认证命名 
         auth_basic_user_file /etc/nginx/auth/passwd.db; #虚拟主机用户名密码认证数据库     
         proxy_pass http://10.0.0.10:8088;  #访问
   }
}
复制代码

  3、重启nginx

nginx -s reload

  4、访问测试

  需要输入密码和账号,输入正确的用户名和密码之后,才可以访问相应的内容。

  二、基于IP的访问控制

  通过IP进行访问控制基于nginx模块ngx_http_access_module

  1、模块安装

  nginx中内置ngx_http_access_module,除非编译安装时指定了–without-http_access_module

  2、指令

    1、allow

  语法: allow address | CIDR | unix: | all;

  默认值: -

  配置段: http, server, location, limit_except

  允许某个ip或者一个ip段访问。如果指定unix:,那将允许socket的访问。

    2、deny

  语法:deny address | CIDR | unix: | all;

  默认值: -

  配置段: http, server, location, limit_except

  禁止某个ip或者一个ip段访问.如果指定unix:,那将禁止socket的访问

  3、示例

location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny all;
}

  从上到下的顺序,类似iptables。匹配到了便跳出。如上的例子先禁止了192.16.1.1,接下来允许了3个网段,其中包含了一个ipv6,最后未匹配的IP全部禁止访问。

  被deny的将返回403状态码。

posted @   思维无界限  阅读(273)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示

目录导航