Nginx limit_req не работает для перенаправления HTTP на HTTPS

У меня в конфигурации есть следующее для перенаправления http-трафика на https:

server {
    listen 80 default_server;
    limit_req zone=one burst=100;
    listen [::]:80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
         }

В моем блоке https-сервера у меня есть

 server {
      listen  443;
      limit_req zone=one burst=100;
----MORE CONFIGS HERE-----
         }

Когда я запускаю тест, чтобы увидеть, работает ли limit_req, я запускаю следующее:

ab -n 100000 -c 1000 https://myurlhere.com

limit_req работает отлично.

Однако, когда я запускаю

ab -n 100000 -c 1000 http://myurlhere.com

limit_req не улавливает переадресацию http на https. Есть идеи, почему?

0
задан 9 February 2017 в 01:30
1 ответ

Моя теория, которую вы подтвердили, заключается в том, что ограничение скорости не применяется к кодам состояния 3xx. Это может применяться только к кодам состояния 200.

Одним из способов определить это может быть просмотр исходного кода, хотя я бегло просмотрел исходный код модуля и ничего не выделялось. Возможно, модуль вызывается только с определенными кодами ответа, я недостаточно знаком с исходным кодом Nginx, чтобы быстро это решить.

0
ответ дан 5 December 2019 в 08:40

Теги

Похожие вопросы