Apache2主机后面的Wordpress容器无法提供静态文件

时间:2018-03-13 19:44:26

标签: wordpress apache docker

我在安装了Apache 2.4的主机中有一个带wordpress:latest的Docker容器。

我将以下行添加到vhost组内的Apache配置文件中:

ProxyPass http://localhost:8010
ProxyPassReverse http://localhost:8010

当我尝试访问我的网址时,我可以访问wordpress主页,但是所有静态文件都指向localhost,因此我的布局无法正常工作。

我错过了什么? Apache的一些设置? Wordpress本身?

Apache模块已经启用。

编辑1: 忘记提及:这条配置位于Location指令内,该指令位于vhost指令内。

<VirtualHost *:80>
    ...
    <Location /usa>
        RequestHeader set X-Is-Reverse=Proxy true
        RequestHeader set X-Original-Host mysite.com.br
        ProxyPass http://localhost:8010
        ProxyPreserveHost On
        ProxyPassReverse http://localhost:8010
     </Location>
     ...
</VirtualHost>

2 个答案:

答案 0 :(得分:0)

如果你代理传递给你的后端,那么进入你容器的请求将被发送,Host标题设置为localhost。显然,WordPress容器负责处理已设置的主机以生成静态资源链接。尝试设置以下代理选项:

ProxyPreserveHost On

ProxyPass配置行之后。 此选项将来自客户端的Host HTTP标头转发到代理连接。通过这种方式,后端将了解从哪个公共URL调用它,资产链接应该是正确的。

编辑。

如果您无法使用ProxyPreserveHost指令,可以尝试使用以下方式直接设置Host标题:

RequestHeader set Host "your.host.name"

答案 1 :(得分:0)

检查wordpress中的Site URL设置是否与您的客户端正在呼叫的URL匹配。 这是有关如何在wordpress中更改网站网址的文档:https://codex.wordpress.org/Changing_The_Site_URL