• 高枕
    2018-12-14
    之前提出的问题,我又仔细的想的一下。老师您看我想的对不对,您只需要回答对或者不对就行了:
    limit-conn 和 linir-reg都用共享内存存储客户端访问相关的数据,假如同一个客户端的第一次访问是 第一个work进程处理的话,有可能客户端的第二次访问就被分配到了第二个work进程,如果要限制并发数到话,两个进程都要访问同一块内存,来确定当前的并发数。
    这就是所谓的对所有work进程有效的意思,对吗?

    作者回复: 对, 这就是第2部分课程里介绍过的,nginx跨进程通讯都基于共享内存,在第4部分反向代理课程中也会用到共享内存。

    
     3
  • 小老弟
    2019-04-29
    老师。我想问一个问题就是。 链接限制貌似没有请求限制有效,因为请求的维度更加的精准,但问题是。我做请求的限制到底设定多少合适?比如我们的公司的主页是80页面

    作者回复: 这是技术以外的问题。
    你需要考虑:1、用户的体验,包括页面的网络时延,前端渲染时用户可察觉的体验需要多少毫秒可接受,各页面平均发起多少个请求,各请求的处理时长;2、产品上对竞品、客户进行调研,评估访问页面的可接受时长;3、计算运营用户访问量消耗的带宽和服务器资源,以及公司的IT成本;4、综合以上计算出请求速率。

    
     1
  • veyron睿
    2018-12-16
    老师讲的非常好,顺带这里想通了一件事,一般封ip用于内部吧,不用于对外。因为Nginx获取到的其实是用户的公网IP,而获取不到更细节那个用户的实际IP,所以一般对外不直接封IP,那样会误伤,因为那个局域网下其他用户也被限制了。

    作者回复: 实际情况中也要封IP的,比如针对爬虫时。

    
     1
  • 高枕
    2018-12-14
    老师 ,请问,前两节limi-conn模块和limit-req模块中,他们是用到了共享内存,但这作用范围是全部work进程什么含义呢?

    作者回复: 含义是:如果你限制一个客户端最多1个连接,但nginx上配了2个worker进程,那么即使该客户端发起2次连接分别落在两台worker进程上,也会被拒绝。

    
     1
  • 高枕
    2018-12-13
    老师,我是写code的,一些基础较差。
    想问一下,这个内存(zone)设置的意义是什么?是代表本模块所开辟的内存空间吗?就是您举例说的那个碗的大小吗?
    另外,您讲到会作用到所有work进程,这是什么意思呢?

    作者回复: 1、worker进程通常与cpu数量保持一致,所有worker进程即当前master生成的所有worker子进程。
    2、nginx中常用的配置指令里,以zone结尾表示开辟的共享内存,可以同时被所有worker进程使用。

    
     1
  • NEVER SETTLE
    2019-07-09
    陶辉老师,如果把binary_remote_addr换成uri后,是不是就是对uri相应的服务就行请求限制了?

    作者回复: 对的

    
    
  • ~尘曦~
    2019-07-09
    limit-conn 和 limit-reg模块是针对同一个客户端还是对所有客户端生效;例如:limit-conn设置最大连接数是2个,当第一个客户端同时请求2个后,在同一时间内是不是第二个客户端请求过来后会报你指的响应码?还是会正常处理第二个客户端的请求呢?
    
    
  • Panda
    2018-12-22
    NGINX是通过共享内存来通信的

    作者回复: :-)

    
    
我们在线,来聊聊吧