微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 Apache 反向代理后面的 Docker 中运行 Wordpress

我想在 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 中遗漏了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。