Я использую Django, FastCGI и Nginx. Я создаю API-интерфейс, который позволяет отправлять некоторые данные через XML, которые я буду обрабатывать, а затем возвращать некоторые коды состояния для каждого отправленного узла.
Проблема в том, что Nginx выдаст тайм-аут шлюза 504, если я потрачу слишком много времени на обработку XML - думаю, больше 60 секунд.
Поэтому я хотел бы настроить Nginx так, чтобы при возникновении каких-либо запросов, соответствующих местоположению / API, время ожидания не превышало 120 секунд. Какая настройка будет выполнять это.
То, что я до сих пор это:
# Handles all api calls
location ^~ /api/ {
proxy_read_timeout 120;
proxy_connect_timeout 120;
fastcgi_pass 127.0.0.1:8080;
}
Редактировать: что у меня не работает :)
configuration
nginx
fastcgi
sheats
источник
источник
Ответы:
Тайм-ауты прокси хорошо, для прокси, а не для FastCGI ...
Директивы , которые влияют на FastCGI тайм - ауты
client_header_timeout
,client_body_timeout
иsend_timeout
.Редактировать : Учитывая то, что найдено в nginx wiki, директива send_timeout отвечает за установку общего времени ожидания ответа (что немного вводит в заблуждение). Для FastCGI есть то,
fastcgi_read_timeout
что влияет на время ожидания ответа процесса fastcgi .НТН.
источник
Для тех, кто использует nginx с единорогом и рельсами, скорее всего тайм-аут в вашем
unicorn.rb
файлеположить большой тайм-аут в единорога.rb
если вы по-прежнему сталкиваетесь с проблемами, попробуйте указать fail_timeout = 0 в своем апстриме в nginx и посмотреть, исправит ли это вашу проблему. Это для целей отладки и может быть опасно в производственной среде.
источник
В
http
разделе nginx (/etc/nginx/nginx.conf) добавьте или измените:В
server
разделе nginx (/etc/nginx/sites-available/your-config-file.com) добавьте следующие строки:В
php
файле в случае 127.0.0.1:9000 (/etc/php/7.X/fpm/pool.d/www.conf) измените:Я надеюсь помочь вам.
источник
Если вы используете единорога.
Посмотри
top
на свой сервер. Вероятно, сейчас Unicorn использует 100% процессорного времени. Есть несколько причин этой проблемы.Вы должны проверить свои HTTP-запросы, некоторые из них могут быть очень сложными.
Проверьте версию единорога. Может быть, вы недавно обновили его, и что-то сломалось.
источник
В настройках прокси сервера так
На сервере php установлен так
источник