Имеется задача: в один docker-контейнер с php-fpm добавить nginx, который будет работать на 80 порту.
Сейчас данный nginx имеет следующую конфигурацию:
server {
listen 80 default_server;
root /app/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
charset utf-8;
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
}
}
Рядом с контейнером php-fpm (с кодом) и nginx запущен ещё один nginx, который является входящим прокси сервером.
Конфиг для данного хоста вот:
server {
listen 80;
server_name test.local.host;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name test.local.host;
ssl_certificate /etc/letsencrypt/live/test.local.host/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/test.local.host/privkey.pem;
location / {
proxy_pass http://php; #php -- имя контейнера, описанного выше
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 900s;
proxy_send_timeout 900s;
}
}
В чём проблема: при переходе на
test.local.host всё работает замечательно (когда выключен redirect на https).
При входе на сайт через
https://test.local.host загружается только index.php, а файлы со стилями (как и все остальные) не загружаются браузером, т.к. они пытаются загрузиться по http, а браузер этого не разрешает. При этом если этот же файл открыть через
https://test.local.host/js/app.js -- файл открывается нормально.
В какой-то момент, то ли главный nginx, то ли второй, то ли php-fpm решает что он работает по http, и возвращает ссылки на файлы по http протоколу.
Какие возможные варианты решения данной проблемы? Уже несколько дней не подберу рабочей конфигурации.