У меня есть докеризованный обратный прокси-сервер Nginx для приложения nodejs, которое должно обслуживать сгенерированные PDF-файлы на основе введенных данных.
Вот текущее состояние nginx.conf
# nginx.conf
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
include /etc/nginx/mime.types;
# bot
location / {
proxy_pass http://frontend:80;
proxy_http_version 1.1;
proxy_set_header X-Forwareded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_buffering off;
}
location /api {
proxy_pass http://backend:3000;
proxy_http_version 1.1;
proxy_set_header X-Forwareded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_buffering off;
}
location /socket.io {
proxy_pass http://backend:3000;
proxy_http_version 1.1;
proxy_set_header X-Forwareded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 8 8k;
}
location /files {
proxy_pass http://backend:3000;
proxy_http_version 1.1;
proxy_set_header X-Forwareded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 8 8k;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
В приложении узла правильный каталог сопоставлен с конечной точкой /file
:
app.use('/files', express.static(path.join(__dirname, 'storage')));
Однако, при попытке загрузить PDF в браузер, я получаю следующее сообщение об ошибке:
Этот сайт не может предоставить безопасное соединение, локальный хост отправил неверный ответ.
ERR_SSL_PROTOCOL_ERROR
И в журналах контейнеров nginx отображаются:
172.23.0.1 - - [24 / Oct / 2019: 16: 42: 39 +0200] "\ x16 \ x03 \ x01 \x02 \ x00 \ x01 \ x00 \ x01 \ хк \ x03 \ x03 \ xF7 \ x01 \ Xbb \ x1e \ XD2 \ XAF * \ xB7 \ XFB \ xB96b4 \ Xee \ xEB \ xC9 \ x18u \ x94-`(\ Xba \xB9 '\ xC18o \ xA0n \ xA0 \ xDA \ xB2l ~ n \ xDFd \ xB9 \ x02C /] \ x9C3 \ xD5u \ x19 \ xA7 \ xE3c \ x1D \ xFD \ x06 \ xEBv \ x0B \ x88x \ x8FW x9x9\ x00 \ x22 \ XDA \ XDA \ x13 \ x01 \ x13 \ x02 \ x13 \ x03 \ xC0 + \ xC0 / \ xC0 \ xC00 \ XCC \ xA9 \ XCC \ xA8 \ xC0 \ x13 \ xC0 \ x14 \ x00 \ x9C\ x00 \ x9D \ x00 / \ x005 \ x00 "400 157" - "" - "" - "
Цель состоит в том, чтобы иметь возможность протестировать все на локальном хосте (следовательно, без SSL), производствосреда, вероятно, будет включать в себяn дополнительный обратный прокси-сервер Nginx перед этим, который обрабатывает сертификаты и т. д.
Я был бы очень благодарен за любые указания относительно того, как обслуживать PDF-файлы в обеих средах.
Заранее спасибо!