Ниже приведен фрагмент кода из конфигурации nginx для приложения Rails. Сайт доступен по адресу localhost: 5478 локально. Порты 5479-82 имеют запущенные экземпляры ruby для обработки трафика при обслуживании запросов. Приложение служит резервным интерфейсом API для приложений, работающих с несколькими пользователями, которые работают для нормальной работы.
Проблема в том, что при загрузке одного из листов xls из приложения импорт занимает около 5 минут, а после истечения времени работы nginx делает запрос на новый порт с тем же файлом. Это приводит к дублированию записей в БД. Увеличение таймаута не поможет, поскольку размер и содержание файла неизвестны. Я хотел бы контролировать конкретные URL, которые не должны проходить через обратный поток прокси. Должен ли я пойти на новые блоки местоположения, чтобы решить эту проблему?
upstream rails {
ip_hash;
server 127.0.0.1:5479;
server 127.0.0.1:5480;
server 127.0.0.1:5481;
server 127.0.0.1:5482;
}
server {
listen 5478 default;
server_name _;
root "../protac/public";
add_header X-Frame-Options "SAMEORIGIN";
location ~ ^/assets/ {
root "../protac/public";
expires 1y;
add_header Cache-Control public;
add_header ETag "";
break;
}
location ~* / {
# Setup redirection headers
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
# Pass the request thru
proxy_pass http://rails;
add_header X-Frame-Options "SAMEORIGIN";
}