nginx 限制重定向

nginx 限制重定向

我们使用 nginx 将任何 http 请求重定向到 https 连接,因此尽管用户建立了 http 连接,nginx 也会重定向到 https 连接。

这里 nginx 是否有每秒只能处理“n”次重定向的限制。因为我们的应用程序可以被其他系统访问,并且它们会故意始终发出 http 请求。因此 nginx 必须将所有 http 请求重定向到 https,但它无法一次处理许多请求。

但是如果我们发出 https 请求,它每秒能够处理大量请求,因为它不需要任何重定向。以下是我们的配置

server {
    listen   6000;                                          ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default ipv6only=on;                  ## listen for ipv6
    server_name     someDomain.com;

    rewrite        ^ https://$server_name$request_uri? ;

    #root /usr/share/nginx/www;
    index index.html index.htm;
}

答案1

您需要使用限制请求数指示。

http
{
    limit_req_zone $binary_remote_addr zone=zonename:100m rate=25r/s;
    server
    {
        limit_req zone=zonename burst=5;

$binary_remote_addr限制每个 IP每秒 25 个请求rate=25r/s

您可以添加nodelaylimit_req使其在达到限制时立即响应 503。

相关内容