Не удалось загрузить статические (JS / CSS) файлы через Proxy_Pass по SSL

Мне нужно докер инстансами, где находится мой WordPress Installation, который состоит из контейнеров NGINX, PHP7.1 (PHP-FPM), MariaDD и Memcache. Они подключаются к контейнеру NGINX, который отправляет трафик во внешний мир.

Все работает найти по HTTP. Когда я переключился на HTTPS, я столкнулся с несколькими проблемами. Я решил некоторые из них, и мне кажется, у меня осталась одна проблема — невозможность загрузки в файлы JS / CSS.

Вот моя конфигурация Nginx на моем контейнере WordPress

server {
listen 0.0.0.0:80;
error_log /var/log/nginx/localhost.error.log;
access_log /var/log/nginx/localhost.access.log;

root /app/web;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
}

Вот мой Nginx Config на моем контейнере Nginx (тот, который выполняет reverse_proxy)

server {
listen 443 ssl http2;
listen [::]:433 ssl http2;
server_name www.example.com;

ssl_certificate /etc/nginx/certs/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/live/www.example.com/privkey.pem;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

sendfile off;
error_log /dev/stdout info;
access_log /dev/stdout;

location / {
proxy_pass http://example-wordpress;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP  $remote_addr;

proxy_set_header   SSL_PROTOCOL $ssl_protocol;
proxy_set_header   SSL_CLIENT_CERT $ssl_client_cert;
proxy_set_header   SSL_CLIENT_VERIFY $ssl_client_verify;
proxy_set_header   SSL_SERVER_S_DN $ssl_client_s_dn;
}

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
expires 5d;
}

# deny access to . files, for security
#
location ~ /\. {
log_not_found off;
deny all;
}location ^~ /.well-known {
allow all;
auth_basic off;
}

}

Вот что я сделал на своем wp-config.php

if (
(!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) ||
(!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) )
{

$_SERVER['HTTPS'] = 'on';
}

Этой конфигурации удается исправить петлю перенаправления, когда я перехожу на сторону администратора. Но он не загружает некоторые файлы CSS и JS.

введите описание изображения здесь

Когда я проверяю ссылку, она направляет меня на страницу 404. Я развернул свой локальный экземпляр на своей машине, чтобы посмотреть, были ли ссылки каким-либо образом изменены. Но, сравнивая их, вы видите тот же минус домена.

https://www.example.com/app/themes/theme-v1.2/build/main.bundle.js?ver=1.0.0
http://www.example.local/app/themes/theme-v1.2/build/main.bundle.js?ver=1.0.0

Я потратил целый день на выяснение этого, но, похоже, я не знаю, что еще нужно сделать, чтобы сделать эту последнюю часть. Я надеюсь, что кто-то здесь может помочь мне, так как это похоже на проблему с nginx.

Я бы также включил это ссылка на сайт так как это помогло мне решить проблему с перенаправлением.

Sumnmary

  • Я бегу 2 докеров. Одним из них является WordPress один NGINX и контейнер NGINX, который обслуживает исходящий трафик в другие контейнеры.
  • я использую proxy_pass перенаправить мой трафик с www.domain.com на мой экземпляр nginx моего контейнера WordPress.
  • Он отлично работает по HTTP. Когда я переключаю HTTPS, все не работает.
  • Мне удается исправить петлю перенаправления на администратора. Но статические файлы, такие как JS и CSS, не загружаются.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]