基于Nginx实现访问控制,连接限制

  

  

<代码> Nginx> DDOS 攻击。
  阅读本文须知道<代码> nginx>   

  

基于Nginx实现访问控制,连接限制

  

nginx.conf作为主配置文件

  

包括/etc/nginx/conf.d/* . conf读到这会把该目录的. conf也读进来

  

1.1全局性的和服务级别的

        用户设置使用用户   worker_processes进行增大并发连接数的处理跟cpu保持一致八核设置八个   error_log nginx的错误日志   pid nginx服务启动时候pid      

1.2事件对事件的模块

        worker_connections一个进程允许处理的最大连接数   使用定义使用的内核模型      

1.3服务器         根首页的路径   指数首页默认访问哪个页面   error_page 500 502 503 504/50 x。html错误页面前面的500是* *的http状态码的* *   systemctl重启nginx。服务重启nginx   systemctl重载nginx。服务不关闭服务柔和地重启      

  

        curl-v http://www.baidu.com在/dev/null # - v同时显示状态码等信息   nginx - v #显示nginx版本及配置文件等信息   
     

  

日志类型:error.log和access.log

        error.log(记录处理http请求的错误状态以及nginx本身服务的错误状态)   access.log(每次http请求的访问状态)      

log_format:设置了日志的记录格式,定义日志以什么样的样式记录到error.log, access.log中,log_format的配置只能配置在http模块中。

  

access_log配置在http中。

  

  

基于Nginx实现访问控制,连接限制

  

  

<代码> limit_ conn_module: TCP连接频率限制,一次TCP连接可以建立多次HTTP请求。
  配置语法:

  

           limit_conn_module语法   范围   说明               limit_conn_zone标识区=空间名:空间大小;   http   用于声明一个存储空间         limit_conn空间名并发限制数;   http服务器或位置   用于限制某个存储空间的并发数量         limit_conn_log_level日志等级;   http服务器或位置   当达到最大限制连接数后,记录日志的等级         limit_conn_status状态码;   http服务器或位置   当超过限制后,返回的响应状态码,默认是503                     

  

limit_conn_zone会声明一个<代码> 空区域间来记录连接状态,才能限制数量。
  <代码> 作为<代码>键>   当<代码> 空区域间被耗尽,服务器将会对后续所有的请求返回<代码> 503(服务暂时不可用)>   

  

<代码> limit_req_mudule :<代码> HTTP> TCP> HTTP>   配置语法:

  

           limit_req_mudule语法   范围   说明               limit_req_zone关键区=空间名:空间大小率=每秒请求数;   http   用于声明一个存储空间         limit_req区=空间名[破裂=队列数][nodelay];   http服务器或位置   用于限制某个存储空间的并发数量                     

  

这里的区域也是用来存储连接的一个空间。

  

破裂和nodelay   

<代码>破裂和<代码> nodelay>   先假设有如下<代码>区>         http {   limit_req_zone binan_remote_addr带美元=req_zone: 1 m率=10 r/s;   }      

情况1:<代码> limit_req区=req_zone;