Задать вопрос
@akdes

Как повысить timeout на отдельные routes в nginx?

Всем привет.

есть Laravel и Nginx:
В ларе есть функционал импорта, которые длятся более 60 секунд и запускаются ночью по крону.
Конфиг сервера взял по стандарту для ларавель:
server {
    listen 80;
    index index.php index.html;
    root /var/www/public;
    client_max_body_size 5M;

    location / {
        try_files $uri /index.php?$args;
    }

    location ~ \.php$ {
        ...
        fastcgi_read_timeout 60
        fastcgi_send_timeout 60;
    }
}


для того, чтобы не увилечивать timeout на все руты, хочу реагировать на запросы к /api/system/* с другим timeout.
Перепробовал разные варианты из сети: и умнее не стал, и работать не хотело.

Подскажите пожалуйста что в конфиг добавить? Прочитал пару статей на эту тему, но в итоге всегда получалось, что "location ~ \.php$ " случается перед вариантом с повышенным timeout.

Спасибо большое
  • Вопрос задан
  • 1530 просмотров
Подписаться 1 Простой 9 комментариев
Решения вопроса 1
@akdes Автор вопроса
Нашёл более или менее логичный ответ, описывающий проблему и решение к ней.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AlexMcArrow
@AlexMcArrow
Люблю РНР, да я такой!
Вы можете разместить блок location ~ \.php$ в каждый блок location
пример
location / {
        try_files $uri /index.php?$args;
        location ~ \.php$ {
          ...
          fastcgi_read_timeout 60
           fastcgi_send_timeout 60;
       }
}
location /2 {
        try_files $uri /index.php?$args;
        location ~ \.php$ {
          ...
          fastcgi_read_timeout 600
           fastcgi_send_timeout 600;
       }
}

Типа такого
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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