Wordpress/apache Proxypass로 콘텐츠 차단/혼합

Wordpress/apache Proxypass로 콘텐츠 차단/혼합

WordPress Docker 컨테이너에 연결되는 특정 포트(8001)에 Apache 역방향 프록시를 설정하려고 합니다.

$ 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

다음은 내 아파치 구성 파일입니다.

/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가 아파치에서 잘못 구성된 것 같습니다.

답변1

wp-config.php의 맨 위( <?php 뒤)에 다음을 추가하여 수정했습니다.

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

관련 정보