在 Apache 反向代理后面的 Docker 中运行 Wordpress

时间:2020-12-26 11:26:48

标签: wordpress docker apache docker-compose reverse-proxy

我想在 apache 反向代理后面的 docker 容器中运行 wordpress 安装。 apache 还应该处理 ssl 终止。

Docker 配置:

version: '3.1'

services:

  wordpress:
    image: wordpress:5.5-php7.4-apache
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: <user>
      WORDPRESS_DB_PASSWORD: <password>
      WORDPRESS_DB_NAME: wp1-db
    volumes:
      - ./wp1:/var/www/html
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: wp1-db
      MYSQL_USER: <user>
      MYSQL_PASSWORD: <password>
      MYSQL_RANDOM_ROOT_PASSWORD: '<password>'
    volumes:
      - ./db1/:/var/lib/mysql

apache 配置

<VirtualHost *:80>
    
    ServerName <servername>
    
    ProxyPreserveHost off
    ProxyPass               /       http://127.0.0.1:8080/
    ProxyPassReverse        /       http://127.0.0.1:8080/
    
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =<servername>/ [OR]
    RewriteCond %{SERVER_NAME} =<servername>
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

现在,当我在没有 ssl 的情况下在给定域下输入我的站点时,该站点至少显示出来,但在控制台日志中有一些跨域错误,但没有加载一些 css 文件。

... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

当我使用 ssl 进入网站时,我在控制台中收到大量混合内容错误。

Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure script '<URL>'. This request has been blocked; the content must be served over HTTPS.

我想我在 wordpress 中缺少反向代理和配置的标头,内容将通过 https 加载?

非常感谢!!

编辑:

当我添加

RequestHeader set X-Forwarded-Port "443"
RequestHeader set X-Forwarded-Proto "https"

在 ssl conf 中,我摆脱了混合内容错误,但我无法再加载内容。

GET https://<domain.name>:8080/wp-includes/css/dist/block-library/style.min.css?ver=5.6 net::ERR_SSL_PROTOCOL_ERROR

这个设置是否正确,我在 wordpress 中遗漏了什么?

0 个答案:

没有答案
相关问题