一、限制连接数量

为了限制连接的数量,首先,使用limit_conn_zone指令来定义密钥并设置共享内存区域的参数(工作进程将使用该区域来共享键值的计数器)。作为第一个参数,指定作为关键字计算的表达式。在第二个参数区域中,指定区域的名称及其大小。

limit_conn_zone $binary_remote_addr zone=addr:10m;

其次,使用limit_conn指令在一个位置、一个虚拟服务器或整个HTTP上下文中应用该限制。将共享内存区域的名称指定为第一个参数,并将每个密钥的允许连接的数量作为第二个参数。

        location /download/ {limit_conn addr 1;}

[root@server1 download]# pwd
/usr/local/nginx/html/download
[root@server1 download]# ls
iso7.gif

测试:当访问该内容并发数为1时

[root@foundation7 ~]# ab -c 1 -n 10 http://172.25.7.1/download/iso7.gif
[root@server1 logs]# cat  access.log 

全部访问成功

测试:当访问该内容并发数为10时

[root@foundation7 ~]# ab -c 10  -n 10 http://172.25.7.1/download/iso7.gif
[root@server1 logs]# cat  access.log 

只有一次访问成功,其他都是503报错


二、限制请求速率

为了限制请求率,首先,使limit_req_zone指令设置密钥和共享内存区域来保持计数器。

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

一旦定义了共享内存区域,在虚拟服务器或位置(或者如果需要的话,在全局上)使用limit_req指令来限制请求率:

location /download/ {limit_req zone=one burst=5;
}

三、限制请求带宽

限制每个连接的带宽,使用limit_rate指令:

location /download/ {limit_rate 50k;
}

测试:在带宽为50K.速率为1r/s的情况下下载文件
nginx.conf的内容如下:

从server1下载,速率受限


四、访问权限限制

## 允许250访问,其他主机都被拒绝location  /admin/ {allow 172.25.7.250;deny all;}



当顺序颠倒,所有主机都被限制访问

        location  /admin/ {deny all;allow 172.25.7.250;}



因为当deny在前所有的请求都被拒绝系统读不到下面的一行allow内容
当allow在前deny在后,allow的信息已经被系统读取过了然后才去读取的deny

五、设置冷数据过期时间

Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求

        location ~ .*\.(gif|jpg|png)$ {expires 30d;}

在客户端访问图片:


六、中文编码无法读取:

[root@server1 www1]# vim  index.html
www.westos.org  你好

在浏览器访问:出现乱码

应对策略:

server{listen 80;server_name www.westos.org  westos.org;charset utf-8;location / {root /www1; index  index.html;}}

七、nginx的日志

访问静态数据不记录日志:

       location ~ .*\.(gif|jpg|png|js|css)$ {expires 30d;access_log off;}

要求:每天的24点备份日至。
首先编写备份日志的脚本:

#!/bin/bash

cd  /usr/local/lnmp/nginx/logs && mv access.log  access.log_$(date +%F -d -1day)/usr/local/nginx/sbin/nginx -s reload

加入定时任务中:

[root@server1 opt]# crontab -e
00 00 * * * /opt/nginx_log.sh

执行脚本:

[root@server1 logs]# sh /opt/nginx_log.sh
[root@server1 logs]# ll
total 288
-rw-r--r-- 1 root root      0 Aug  8 14:39 access.log
-rw-r--r-- 1 root root 244683 Aug  8 14:29 access.log_2018-08-07
-rw-r--r-- 1 root root  34562 Aug  8 14:39 error.log
-rw-r--r-- 1 root root      5 Aug  8 08:51 nginx.pid

八、 Nginx中的防盗链

在做防盗链之前我们先来看看什么时盗链:
盗链是指服务提供商自己不提供服务的内容,自己的网站上向用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。
盗链的模拟:
在客户端www.westos.org指向的是server1,172.25.7.1

[root@server2 html]# vim index.html
<html><body><img src="http://www.westos.org/images/iso7.gif"></body></html>

测试:http://172.25.7.2/
server2没有此图片通过盗链而让客户端可获取到此图片

防止盗链:
WEB应用防火墙通过实现URL级别的访问控制,对客户端请求进行检测,如果发现图片、文件等资源信息的HTTP请求来自于其它网站,则阻止盗链请求,节省因盗用资源链接而消耗的带宽和性能。

location ~ \.(gif|jpg|png)$ {root /www1;valid_referers none blocked  www.westos.org;if ($invalid_referer) {#       return 403;rewrite ^/ http://bbs.westos.org/daolian.jpg;}}}server{listen 80;server_name bbs.westos.org;location / {root  /www2;index index.html;}}

当访问1的图片时直接定位至bbs.westos.org防止图片被盗链
再次访问172.25.7.2时:
此图片是我放入bbs的默认发布目录里的

Nginx对代理HTTP资源的限制访问相关推荐

  1. Nginx反向代理,通过域名直接访问指定的端口,比如8080

    Nginx反向代理,通过域名直接访问指定的端口,比如8080 今天写微信公众号开发网络授权的时候,通过域名加接口url的方式,始终访问不到指定的接口,最后想了很久,发现是Nginx反向代理没有配置! ...

  2. Nginx反向代理:通过外网访问内网数据库(mysql)

    Nginx反向代理:通过外网访问内网数据库 前言 项目场景: 问题描述及分析: 解决方案: 1 在部署nginx里配置端口IP 2 在外网nginx配置反向代理参数 3 重启nginx 前言 部署ng ...

  3. Harbor配置Nginx反向代理,可以外网访问

    1.修改Harbor默认80端口. 需要修改Harbor.yml和docker-compose.yml两个文件内的配置参数. 2.添加本地Nginx.conf文件,修改自己需要的配置参数. 3.配置N ...

  4. Nginx反向代理静态资源

    在/etc/nginx/conf.d目录下创建test.conf文件,输入以下配置信息 ​server {listen 80;server_name helleworld.cn; #修改域名locat ...

  5. nginx 代理静态资源报 403

    用tomcat跑了一个上传服务,文件上传到指定nginx的html目录,用nginx来代理静态资源,结果上传能够成功,访问却报403. 解决办法,将html的拥有者改成nobody: chown -R ...

  6. Nginx限制对代理HTTP资源的访问速率

    Nginx限制对代理HTTP资源的访问速率 本文介绍了如何设置连接请求的最大数量,或从服务器下载内容的最大速率. 介绍 限制连接数 限制请求率 测试请求速率限制 处理过多的请求 延迟过多的请求 同步许 ...

  7. OSS在private权限下的无参数访问(Nginx反向代理实现)

    本文主要介绍内容 oss默认权限策略是private,当修改到public-read或更高权限时会提示存在安全风险.如果需要访问oss资源需要在地址上添加签名内容,不利于地址的存储和使用.本文会介绍如 ...

  8. Nginx反向代理及域名解析访问本地项目

    ···目录··········································· 终极目标 明确思路 域名解析 破解域名 Nginx反向代理解决端口问题 完成测试 注意事项 终极目标 ...

  9. 关于localhost访问特别快而nginx配置代理后转发特别慢的解决

    关于localhost访问特别快而nginx配置代理后转发特别慢的解决 背景 解决过程 后续 背景 本地启动一个web应用,在采用localhost:port的方式访问的时候特别流畅,因为访问其它资源 ...

最新文章

  1. php vc9安装包免费下载,phpstudy 2013软件下载-phpstudy 2013安装包pc客户端 - 极光下载站...
  2. asp开发中存储过程应用全接触 _asp技巧
  3. hbase集群部署与测试(2017)
  4. php excel导入mysql_使用PHPExcel导入Excel到MySql
  5. 原SUN网站:java.sun.com,developers.sun.com,bigadmin将合并到OTN
  6. Android Studio 下使用git -- 个人,本地版本控制
  7. ajax无刷新评论示例
  8. will would 七大用法总结
  9. 【三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 1363期】
  10. 计算机二级-C语言-程序设计题-190118记录-通过数组和指针两种方式对字符串进行处理。...
  11. python剪切文件到另外路径_python剪切文件
  12. 测试3.0u盘速度软件,SanDisk USB3.0接口的U盘测试
  13. 黑帽SEO研究之js快照劫持代码分析
  14. NAC(网络准入控制)实施案例(20100531)
  15. SPI写入数据的时候记得读取,不然会一直读出0xFF!
  16. Thymeleaf行内写法
  17. git 账号密码重置
  18. F#周报2019年第8期
  19. 数据库(单表查询与多表联查)
  20. 点餐系统Sprint1总结

热门文章

  1. CAD/SolidWorks/UG/ProE/Creo/Catia/3dsMAX/2D/3D绘图软件远程安装协助
  2. linux无盘win7系统下载,顺网雲无盘客户机镜像下载链接
  3. 什么是线性表?什么是线性表的顺序存储结构?什么是线性表的链式存储结构?
  4. 软件测试理论、方法、流程及规范
  5. DHCP协议详解,报文内容,如何查看报文,为什么offer报文会以广播的形式进行发送
  6. 2019年1月8日个人总结
  7. docker-comose搭建openldap + jenkins
  8. Maxon发布Cinema 4D R23
  9. 中登公司统计数据好像有问题,看不懂。
  10. 优雅炫酷的WordPress 导航主题 适合做小众化导航站 源码下载