Apache-2.4
Docker 容器的 Apache 反向代理
我有一個在 docker 容器上執行的網站,並且我在主機的 apache 上創建了一個 VirtualHost,它正在對容器進行反向代理(在主機的 8280 埠上)。所以我有:
<VirtualHost *:443> ServerName www.example.com DirectoryIndex index.php index.html SetOutputFilter SUBSTITUTE,DEFLATE ProxyPass / http://localname:8280/ ProxyPassReverse / http://localname:8280/ Substitute "s|http://localname:8280/|https://www.example.com/|i" SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateKeyFile /path-to/privkey.pem SSLCertificateFile /path-to/cert.pem SSLCertificateChainFile /path-to/chain.pem <Proxy *> Order deny,allow Allow from all Allow from localhost </Proxy> </VirtualHost> <VirtualHost *:80> ServerName www.example.com ServerAlias www.example.com Redirect permanent / https://www.example.com/ </VirtualHost>
代理執行良好,我在瀏覽器中寫入 www.example.com 時有響應,但我的所有連結都指向http://localname:8280(如瀏覽器控制台所示)和混合內容錯誤,這就是為什麼我已經放置了 Substitute 指令,但它不起作用。
我正在使用 apache 文件中的 mod_substitute 配置。
https://httpd.apache.org/docs/2.4/mod/mod_substitute.html
但這不起作用,任何事情都會發生變化。docker 容器基於具有預設配置的 bitnami/apache 映像。
任何幫助,將不勝感激。
好的,我自己找到了答案。您只需在 Substitute 指令上添加以下行:
AddOutputFilterByType SUBSTITUTE text/html