Apache-2.2
Apache2中的Mod-rewrite埠
我正在 Ubuntu 20.04 上的 docker 中使用家庭助理 (HA)。HA 託管在埠 8123 上。HA 不支持子路徑,即。它託管在
MYDOMAIN.duckdns.org:8123
而不是MYDOMAIN.duckdns.org:8123/ha
. 我希望它可以通過MYDOMAIN.duckdns.org/ha
. 我想我需要使用 mod-rewrite 來完成這個,但我不確定。Apache 在主作業系統上執行。任何幫助將非常感激。PS。我知道有埠轉發和 dyn dns 工作,因為我目前可以通過
MYDOMAIN.duckdns.org:8123
. 我還有其他服務支持使用ProxyPass
.
我最終重定向
MYDOMAIN.duckdns.org/ha
到ha.MYDOMAIN.duckdns.org
<VirtualHost MYDOMAIN.duckdns.org:80> ServerName MYDOMAIN.duckdns.org RedirectMatch /ha/(.*) https://MYDOMAIN.duckdns.org/$1 </VirtualHost> <VirtualHost MYDOMAIN.duckdns.org:80> ServerName ha.MYDOMAIN.duckdns.org RedirectMatch /(.*) https://MYDOMAIN.duckdns.org/$1 </VirtualHost> <VirtualHost MYDOMAIN.duckdns.org:80> ServerName MYDOMAIN.duckdns.org RedirectMatch /(.*) https://MYDOMAIN.duckdns.org/$1 </VirtualHost> <VirtualHost _default_:443> ServerName ha.MYDOMAIN.duckdns.org SSLEngine On SSLProxyEngine On SSLCertificateFile <FILE> SSLCertificateKeyFile <KEYFILE> ProxyPreserveHost On ProxyRequests off RequestHeader set-X-Forwarded_proto "https" ProxyPass / http://ha.MYDOMAIN.duckdns.org:8123/ ProxyPassReverse / http://ha.MYDOMAIN.duckdns.org/ </VirtualHost> <VirtualHost _default_:443> ServerName MYDOMAIN.duckdns.org SSLProxyEngine On SSLCertificateFile <ha_FILE> SSLCertificateKeyFile <ha_KeyFILE> RedirectMatch /ha(.*) https://ha.MYDOMAIN.duckdns.org:443$1 </VirtualHost> <VirtualHost _default_:443> ServerName MYDOMAIN.duckdns.org SSLProxyEngine On SSLCertificateFile <FILE> SSLCertificateKeyFile <KeyFILE> </VirtualHost>
您需要代理而不是重寫,因為您將連接發送到與 Apache 不同的服務。
ProxyPass /ha/ http://MYDOMAIN.duckdns.org:8123/ ProxyPassReverse /ha/ http://MYDOMAIN.duckdns.org:8123/
請參閱代理通行證。