我在安装了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>
答案 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