Nginx设置身份验证

摘要:
可通过命令./nginx-V查看是否有此模块。

在某些情况下,需要对某些内容的访问进行限制,在Nginx中也提供了这样的限制措施,以下是几种常见的限制措施:

1.访问身份验证

在Nginx的插件模块中有一个模块ngx_http_auth_basic_module可以要求用户进行身份认证,默认情况下nginx已经安装了这个模块 。可通过命令./nginx -V查看是否有此模块。

安装后只需要进行以下步骤即可实现:

首先创建密钥文件:

  yum install -y httpd-tools
  htpasswd -bc /usr/nginx/conf/htpasswd.users username password
cat /usr/nginx/conf/htpasswd.users

配置nginx:

server 
  {
      listen 80;
      server_name 192.168.1.1;
      auth_basic "Restricted Access";
      auth_basic_user_file /usr/nginx/conf/htpasswd.users;
      location /
      {
          proxy_pass http://192.168.1.2:5601;
}
  }

配置完成后重启nginx服务即可。正常情况下会出现以下输入框输入设置的用户名和密码即可:

Nginx设置身份验证第1张

2.限制IP访问

在nginx.conf中添加以下配置可实现全局限制,也可将此配置放到server中或location中,放到server中只针对站点进行限制,location中只针对匹配的url进行限制:

  allow 192.168.1.1;  #允许的IP
deny 192.168.1.2;   deny all;

可添加多条allow或deny,deny all结尾表示除了上面allow的其他都禁止,deny all;deny 一定要加一个ip,否则直接跳转到403,下面的规则将不起作用。

3.限制某些ip在同一时间段内的访问次数

nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一时间段的访问次数.

HttpLimitReqModul用来限制连单位时间内连接数的模块,使用limit_req_zone和limit_req指令配合使用来达到限制。一旦并发连接超过指定数量,就会返回503错误。HttpLimitConnModul用来限制单个ip的并发连接数,使用limit_zone和limit_conn指令.

这两个模块的区别前一个是对一段时间内的连接数限制,后者是对同一时刻的连接数限制.

园子里有作者已经有过详细介绍,请参考:https://www.cnblogs.com/aoniboy/p/4730354.html

免责声明:文章转载自《Nginx设置身份验证》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇编译内核启用iptables及netfiltergreenplum(postgresql) 数据字典下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue 跨域请求,后端cookie session取不到

虽然后端设置了可以跨域请求,但是后台设置到cookie中的session取不到!这时候mac电脑自己设置nginx代理! mac电脑系统重装了,记录一下安装nginx的过程: 1、打开终端(cmd) 2、安装Command Line tools xcode-select --install 3、安装brew命令 1 ruby -e "$(curl ...

linux上部署vue项目

1、是将dist文件夹下的内容不知道目录中,而不是dist目录 2、下面的/var/www目录可以自定义 1、需要改四个地方:listen server_name location中的root location中的proxy_pass listen:监听的端口,为vue的端口 server_name:服务器的名称,一般服务器的ip(写了地址可能有警告,不...

Mac安装PHP运行环境

先安装brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" nginx的安装与配置 brew install nginx 修改配置文件 sudo vim /usr/local/etc/nginx/nginx.conf #修...

docker学习

Docker 介绍 docker是什么 操作系统级别的虚拟化,基于linux内核的namespace和cgroup docker 与虚拟机对比 启动秒级,虚拟机是分钟级别 磁盘几M,虚拟机G级别 隔离程度相比虚拟机较低 应用场景 打包程序发布 部署微服务 测试 持续集成 应用程序隔离,环境的一致性,迁移方便   安装配置 官网 www.docker.com...

解决linux重启后无法开启nginx问题“var/run/nginx/nginx.pid" no such file or directory问题

起因:每次重启虚拟机后,var/run/nginx/目录都会被删除,所以无法在这个目录创建nginx.pid文件,   可以自己创建var/run/nginx/目录,然后可以运行,但治标不治本,下次虚拟机重启目录还会丢失。 解决方法:   打开/usr/local/nginx/conf/nginx.conf 这是我的配置文件,一般在nginx的conf文件...

Nginx的高级使用

1、概述 之前介绍过Nginx的简单使用,今天来聊聊Nginx的一些高级使用。 2、使用Nginx解决跨域问题 当公司存在多个域名时,两个不同的域名相互访问就会存在跨域问题。 或者在进行前端开发时,通常前端代码在本地启动,而后端代码会部署在一台专用的后端开发服务器上,此时前端去调用后端接口时,就会出现跨域问题。 解决跨域的方法有很多,今天来说一下如何使用N...