Дано:
Есть внешний сервис ispringlearn.ru на нем создается обучающий материал и аккаунт соответственно
domain. ispringlearn.ru
Нам нужно отдавать этот контент с сайта клиента
academy.domain.ru с его сертификатами и тд.
ПО умолчанию они предалагают просто через CNAME однако мы этого не можем сделать ибо сертификат wildcard и домен *.domain.ru уже имеет А запись
Собственно я просто не долго думая создаю servers и проксирую его на нужный нам сервис.
server {
listen 443 ssl http2;
ssl_certificate /etc/nginx/ssl/domain.crt;
ssl_certificate_key /etc/nginx/ssl/domain.key;
include snippets/ssl-params.conf;
server_name academy.domain.ru;
location / {
proxy_pass https://domain.ispringlearn.ru;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host domain.ispringlearn.ru;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;
proxy_pass_header X-CSRF-TOKEN;
proxy_request_buffering off;
}
snippets/ssl-params.confssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Content-Type-Options nosniff;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
И все работает, кроме загрузки файлов на сайте, притом только в определенных местах.
Сори за замазки, политика партии ;(
И исправил я это достаточно странным способом , указав вообще левый
proxy_set_header Host 111.ispringlearn.ru;
Только так исчезли ошибки загрузки файла, но не исчезла проблема моего непонимания как сделать правильно.
при этом $host и удаление параметра так же не решают проблему. А оставлять с явной ошибкой в конфиге мне не позволяет чувство прекрасного и понимание что тут явно костыль.