Я надеюсь, что кто-нибудь сможет пролить свет на это. У нас есть приложение Rails 2, которое генерирует PDF с помощью библиотеки wicked_pdf. Мы запускаем приложение под Unicorn по прокси от nginx.
Проблема в том, что всякий раз, когда приложение пытается обработать PDF, оно просто блокирует время ожидания, и nginx сообщает о 404. Я проверил приложение через порт единорога, и оно работает нормально, поэтому между единорогом и nginx происходит нечто, вызывающее это. потерпеть неудачу.
Файлы журнала не сообщают ничего полезного. Журнал приложения просто сообщает все нормально, но не выводит строку Sending data
. Журнал nginx сообщает *443 upstream prematurely closed connection while reading response header from upstream, client
.
В журнале ошибок единорога сообщается, что время соединения истекло, а рабочий уничтожается, но создание PDF не занимает 30 секунд:
worker=2 PID:14099 timeout (31s > 30s), killing
reaped #<Process::Status: pid=14099,signaled(SIGKILL=9)> worker=2
worker=2 ready
Мне кажется, что мы что-то упустили в конфигурации nginx для сайта, но я не уверен, с чего начать.
Я включил конфигурацию nginx ниже:
server {
listen *:80;
server_name server_name.example.com;
root /var/apps/application/current/public;
try_files /system/maintenance.html $uri $uri/index.html @app;
location @app {
proxy_pass http://unix:/tmp/application.sock;
proxy_set_header Host $http_host;
}
error_page 404 400 500 502 /error.html;
location = /error.html {
root /var/www;
}
}