小编do_*_*ise的帖子

nginx limit_req速率限制的问题 - 文档澄清?

我对使用乘客/铁路的nginx进行速率限制没有任何困难.

部分混淆是区分配置的哪些方面基于每个客户端以及哪些是全局限制.

我在解决nginx的limit_req和limit_req_zone配置的理想设置时遇到了问题.它似乎模糊地在语言之间翻转,暗示这是用户特定的或全局适用的.

在文档中,这limit_req_zone条线的工作方式非常模糊.这个"区域"是全球用户还是每用户?鉴于以下几行,我在以下结论中是正确的:

limit_req_zone $binary_remote_addr zone=update_requests:1m rate=20r/s;
Run Code Online (Sandbox Code Playgroud)
  1. $ binary_remote_addr表示用户的IP地址
  2. 特别是这种表示是优选的,因为它比$ remote_addr占用更少的空间?为什么这很重要或更可取?
  3. "区域"(在这种情况下)充满了他们的IP地址的表示......?
  4. 'rate'是允许请求离开队列的速率?
  5. 这个"费率"和"区域" - 是客户特定还是全球?

我也不确定limit_req行,例如:

limit_req zone=main_site burst=10 nodelay;
Run Code Online (Sandbox Code Playgroud)
  1. 不完全确定爆发意味着什么.这里的文档也很模糊.我猜这是一些请求.当其余的请求系统使用这个奇怪的"区域"系统时,为什么请求数量?
  2. '爆发'请求是每个....什么时间框架?
  3. 据我所知,'nodelay'意味着如果队列中有其他请求,则立即提供503错误,而不是等待队列完成.a)等多久?b)这是否意味着在这种情况下忽略'爆发'设置?

谢谢.


一些背景信息,以防任何人真的很无聊,并想看看我们试图解决的配置和一般问题:

目前我有这个(摘录):

limit_req_zone $binary_remote_addr zone=main_site:10m rate=40r/s;
limit_req_zone $binary_remote_addr zone=update_requests:1m rate=20r/s;

server {
  listen        80;
  server_name   [removed];
  root          [removed];
  include       rtmp_proxy_settings;

  try_files $uri /system/maintenance.html @passenger;
  location @passenger {
    passenger_max_request_queue_size 0; # 256;
    limit_rate_after 2048k;
    limit_rate 512k;
    limit_req zone=main_site burst=10 nodelay;
    limit_conn addr 5;
    passenger_enabled on;
    passenger_min_instances 3;
  }

  location ~ ^/update_request {
    passenger_enabled …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails passenger nginx

8
推荐指数
1
解决办法
6257
查看次数

输入控件在Firefox中溢出了Flex容器

我在使用flexbox输入组的Firefox(Chrome上不错)上遇到了问题-select输入将文本输入推出了容器。

我提取了一些标记,并在下面复制了相关样式:

.column.names {
  width: 48%;
  float: left;
}
select {
  min-width: 6em;
  align-items: center;
  justify-content: center;
  width: 7em;
}
input {
  width: 100%;
}
.input_group {
  display: flex;
}
Run Code Online (Sandbox Code Playgroud)
<div class='column names'>

  <div>
    <label for="user_name">Name</label>
    <div>
      <div class='input_group'>
        <select name="user[title]" id="user_title">
          <option value=""></option>
          <option selected="selected" value="Mr">Mr</option>
          <option value="Mrs">Mrs</option>
          <option value="Other">Other</option>
        </select>
        <input maxlength="255" size="255" type="text" name="user[name]" id="user_name" />
      </div>
    </div>
  </div>

  <div>
    <label for="user_company">Company</label>
    <div>
      <input maxlength="255" size="255" type="text" value="" name="user[company]" id="user_company" />
    </div>
  </div>

</div>
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/j9s0fk8c/

为了明确起见,名称选择+输入框的组合宽度应与公司输入框的宽度相同。

再次,这在Chrome中还不错,但是由于某些原因,flexbox无法解决Firefox中的问题(这只是我们不得不处理的一系列怪异问题中的一个)

html css firefox flexbox

6
推荐指数
2
解决办法
1774
查看次数

标签 统计

css ×1

firefox ×1

flexbox ×1

html ×1

nginx ×1

passenger ×1

ruby-on-rails ×1