Для всех, кто пытается настроить Superdesk и сталкивается с той же проблемой, я наконец-то выяснил правильную конфигурацию.
Во-первых, вот конфигурация Nginx, которую я должен обрабатывать HTTPS-запросы и перенаправлять HTTP-запросы в HTTPS:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name my.domain.com;
ssl on;
ssl_certificate /path/to/my/cert.pem;
ssl_certificate_key /path/to/my/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
location /ws {
proxy_pass http://localhost:5100;
proxy_http_version 1.1;
proxy_buffering off;
proxy_read_timeout 3600;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
location /api {
proxy_pass http://localhost:5000;
proxy_set_header Host my.domain.com;
expires epoch;
sub_filter_once off;
sub_filter_types application/json;
sub_filter 'http://localhost' 'https://$host';
}
location /contentapi {
proxy_pass http://localhost:5400;
proxy_set_header Host my.domain.com;
expires epoch;
}
location /.well-known {
root /var/tmp;
}
location / {
root /opt/superdesk/client/dist;
# TODO: use "config.js:server" for user installations
sub_filter_once off;
sub_filter_types application/javascript;
sub_filter 'http://localhost' 'https://$host';
sub_filter 'ws://localhost/ws' 'wss://$host/ws';
}
location /mail {
alias /var/log/superdesk/mail/;
default_type text/plain;
autoindex on;
autoindex_exact_size off;
}
}
server {
listen 80;
listen [::]:80;
server_name my.domain.com;
return 301 https://$host$request_uri;
}
Чего мне не хватало в конфигурации:
В поле proxy_set_header
должно быть установлено значение proxy_set_header Host <my_domain name>
, а в поле sub_filter
онобыл только второй параметр , который должен был быть настроен для использования HTTPS
Специфика Superdesk, которую нужно было настроить:
In / opt/superdesk/activate.sh, установите HOST_SSL в HOST_SSL=${HOST_SSL:-s}
.Это гарантирует, что ссылки, отправленные по почте (например, электронные письма о пароле), будут отправлены в виде HTTPS.
В ретроспективе это кажется простым, но это было трудно понять с ограниченным знанием Nginx ...