Заблокированный/смешанный контент с Wordpress/apache proxypass

Заблокированный/смешанный контент с Wordpress/apache proxypass

Я пытаюсь настроить обратный прокси-сервер Apache на определенный порт (8001), который связан с контейнером Wordpress Docker:

$ docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                      NAMES
9592d33ed6c1        wordpress:5.5.0-php7.3-apache   "docker-entrypoint..."   23 seconds ago      Up 21 seconds       0.0.0.0:8001->80/tcp       martynbiz_wordpress_1
7c0d046560d6        mysql:5.7                       "docker-entrypoint..."   25 seconds ago      Up 23 seconds       3306/tcp, 33060/tcp        martynbiz_db_1

Ниже представлен мой файл конфигурации Apache:

/etc/apache2/sites-available/martynbiz.conf

<Virtualhost *:80>
    ServerName        www.martyn.biz
    ServerAlias        martyn.biz
    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode

    SSLProxyEngine On
    SSLProxyCheckPeerCN on
    SSLProxyCheckPeerExpire on

    <Proxy http://localhost:8001/*>
      Order deny,allow
      Allow from all
    </Proxy>

    ProxyPass         /  http://localhost:8001/ nocanon
    ProxyPassReverse  /  http://localhost:8001/

    #RewriteEngine on
    #RewriteCond %{SERVER_NAME} =martyn.biz
    #RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.martyn.biz [OR]
RewriteCond %{SERVER_NAME} =martyn.biz
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</Virtualhost>

/etc/apache2/sites-available/martynbiz-le-ssl.conf

<IfModule mod_ssl.c>
<Virtualhost *:443>
    ServerName        www.martyn.biz
    ServerAlias        martyn.biz
    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode

    SSLProxyEngine On
    SSLProxyCheckPeerCN on
    SSLProxyCheckPeerExpire on

    <Proxy http://localhost:8001/*>
      Order deny,allow
      Allow from all
    </Proxy>

    ProxyPass         /  http://localhost:8001/ nocanon
    ProxyPassReverse  /  http://localhost:8001/

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/martyn.biz/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/martyn.biz/privkey.pem
</Virtualhost>
</IfModule>

Мой сертификат кажется действительным, и обратный прокси-сервер связывает контейнер с доменным именем. Однако я получаю заблокированный смешанный контент, поэтому таблицы стилей и т. д. не отображаются. Если я удаляю все SSL-вещи из файлов конфигурации и использую HTTP, все выглядит нормально. У меня никогда не было такой проблемы с настройкой SSL-сертификатов, но раньше я не использовал обратный прокси-сервер. Я подозреваю, что проблема в этом и в неправильной настройке HTTP/HTTPS в Apache?

решение1

Исправлено путем добавления следующего в самый верх (после <?php ) файла wp-config.php

if ( (!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) || (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) { $_SERVER['HTTPS'] = 'on'; }

Связанный контент