![通配符域名的反向代理 - Apache Linux](https://linux22.com/image/715465/%E9%80%9A%E9%85%8D%E7%AC%A6%E5%9F%9F%E5%90%8D%E7%9A%84%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%20-%20Apache%20Linux.png)
我正在尝试为通配符域设置反向代理,但是登录应用程序后我的配置无法正常工作。
该服务器正在运行 Apache 又名 httpd 服务,端口为 80、443。
frafahadooappd5.de.cd.com
域名映射到其他 IP 地址,如下所示,
[dladmin@frasasdlappd2 ~]$ nslookup *.dev.cdsw.abc.intranet.cd.com --> wildcard webdomain
Server: 10.255.252.1
Address: 10.255.252.1#53
Non-authoritative answer:
*.dev.cdsw.abc.intranet.cd.com canonical name = sdl-cdsw-dev.de.cd.com.
sdl-cdsw-dev.de.db.com canonical name = frasasdlappd2.de.cd.com.
Name: frasasdlappd2.de.cd.com
Address: 10.198.2.52
[dladmin@frasasdlappd2 ~]$ nslookup sdl-cdsw-dev.de.cd.com --> working like a variable as wildcard cant be directly mapped to normal
Server: 10.255.252.1
Address: 10.255.252.1#53
Non-authoritative answer:
sdl-cdsw-dev.de.cd.com canonical name = frasasdlappd2.de.cd.com.
Name: frasasdlappd2.de.cd.com
Address: 10.198.2.52
我的配置如下,
NameVirtualHost *:443
<VirtualHost *:443>
ServerName frafahadooappd5.de.cd.com:443
ServerAlias *.dev.cdsw.intranet.cd.com
AllowEncodedSlashes on
#Options +Indexes +SymLinksIfOwnerMatch +FollowSymLinks
#DirectoryIndex index.php index.html
SSLEngine on
SSLCertificateFile /opt/testlab/pki/publicCertificates/host_crt.pem
SSLCertificateKeyFile /opt/testlab/pki/keystore/host_key.pem
SSLCertificateChainFile /opt/testlab/pki/publicCertificates/chain_crt.pem
SSLProxyEngine On
ProxyPass / https://dev.cdsw.abc.intranet.cd.com/
ProxyPassReverse / https://dev.cdsw.abc.intranet.cd.com/
ProxyPassReverseCookieDomain frafahadooappd3.de.cd.com frafahadooappd5.de.cd.com
RewriteEngine on
RewriteCond %{HTTPS_HOST} ^frafahadooappd5\.de\.cd\.com$
RewriteRule ^(.*)$ "https\:\/\/frafahadooappd5\.de\.cd\.com\/$1" [R=301,L]
</VirtualHost>
当我导航到反向代理 URL 时,
反向代理 URL:https://frafahadooappd5.de.cd.com/-> 即使按预期登录到应用程序后,应用程序登录页面仍会显示代理 URL,但应用程序网页内有一个名为“项目”的字段,当我点击该字段时,它会转到应用程序 URL(https://dev.cdsw.abc.intranet.cd.com/login?next=%2Fvijay%2Ftest-dev),但情况不应该如此,而应该将其自身限制在反向代理 URL 上。
不确定,这个重写条件是否正确。由于这个请求很特殊,我提供了所有详细信息。请帮我解决。
答案1
看起来您希望重写模块替换内容,重写模块会更改 http 请求,但不会更改内容。
您可以尝试使用替代模块,或重新配置应用程序以使用主机标头动态分配链接/资产或仅使用相对链接。
尝试类似...
AddOutputFilterByType SUBSTITUTE text/html
substitute "s|frafahadooappd5.de.cd.com|%{HTTPS_HOST}|inq"