Я погуглил эту проблему и нашел много ссылок, но ни один из обходных путей или решений, кажется, не работает в моем случае. У меня есть докер-контейнер с Nginx, действующим в качестве обратного прокси-сервера SSL для аутентификации. У меня есть контейнер Apache, обслуживающий приложение Laravel. Я всегда получаю HTML, но нет CSS или изображений. В Chrome я получаю:
Ресурс интерпретируется как таблица стилей, но передается с MIME-типом text/html:
Вот мой default.conf в nginx/sites/
upstream app {
server 172.18.0.6;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server ipv6only=on;
server_name rocket.example.com localhost;
root /var/www/public;
index index.php index.html index.htm;
include /etc/nginx/mime.types;
# tell users to go to SSL version this time
if ($ssl_protocol = "") {
rewrite ^ https://$server_name$request_uri? permanent;
}
add_header Strict-Transport-Security "max-age=15768000";
ssl_certificate /etc/nginx/rocket.crt;
ssl_certificate_key /etc/nginx/rocket.key;
ssl_dhparam /etc/nginx/rocket_dhparam.pem;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK";
error_page 497 https://$host:$server_port$request_uri;
ssl_verify_client on;
ssl_verify_depth 10;
ssl_client_certificate /etc/nginx/allcerts.pem;
location / {
try_files $uri $uri/ /index.php$is_args$args;
include /etc/nginx/mime.types;
}
location ~ \.php$ {
proxy_pass http://app;
proxy_http_version 1.1;
proxy_set_header Host $host:$server_port;
proxy_set_header Referer $http_referer;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header X-Client-Verify $ssl_client_verify;
proxy_set_header X-Client-DN $ssl_client_s_dn;
proxy_set_header X-SSL-Issuer $ssl_client_i_dn;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_send_timeout 86400;
proxy_read_timeout 86400;
include /etc/nginx/mime.types;
}
location ~ /\.ht {
deny all;
}
}
Как я уже говорил, ни одно из других решений не сработало. Кто-нибудь может увидеть ошибку, которая может быть причиной этого? Я поместил директивы proxy_ в обоих местах с одинаковым эффектом. Любая помощь будет принята с благодарностью.