[英]Wordpress container behind Apache2 host can't serve static files
我在裝有Apache 2.4的主機中有一個帶wordpress:latest
的Docker容器。
我在vhost
組內的Apache配置文件中添加了以下vhost
:
ProxyPass http://localhost:8010
ProxyPassReverse http://localhost:8010
當我嘗試訪問URL時,我可以訪問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>
如果您像這樣將代理傳遞到后端,則將在發送給您容器的請求中將Host
標頭設置為localhost
。 顯然,WordPress容器負責設置主機以生成靜態資產鏈接。 嘗試設置以下代理選項:
ProxyPreserveHost On
在ProxyPass
配置行之后。 此選項將來自客戶端的Host
HTTP標頭轉發到代理連接。 這樣,后端將了解從哪個公共URL進行調用,並且資產鏈接應該是正確的。
編輯。
如果您不能使用ProxyPreserveHost
指令,則可以嘗試使用以下ProxyPreserveHost
直接設置Host
標頭:
RequestHeader set Host "your.host.name"
檢查wordpress中的“ Site URL
設置是否與您的客戶呼叫的URL相匹配。 這是有關如何在wordpress中更改站點URL的文檔: https : //codex.wordpress.org/Changing_The_Site_URL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.