【发布时间】:2021-12-21 22:56:33
【问题描述】:
HTTPD 配置如下:
#redirectder edit Location "(^http[s]?://)([^/]+)" "" port 80 to secure
<VirtualHost *:80>
ServerName mitestui02.sn.test.net
#ServerAlias server server2.domain.com server2
ServerAdmin support.p240@test.com
ErrorLog /var/log/test/iiq/appserver/apache-error.log
CustomLog /var/log/test/iiq/appserver/apache-access.log common
Redirect /identityiq/ https://mitestui02.sn.test.net/identityiq/
Redirect / https://mitestui02.sn.test.net/identityiq/
</VirtualHost>
#redirect to port 8080 on localhost
<VirtualHost *:443>
ServerName mitestui02.sn.test.net
# ServerAlias mitestui02 mitestui02.sn.test.net
ServerAdmin support.p240@test.com
SSLProxyEngine On
SSLEngine On
#allow only tls
SSLProtocol -all +TLSv1.2
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384...
SSLCertificateFile /etc/opt/test/iiq/appserver/secure/ssl/web-iiq.crt
SSLCertificateKeyFile /etc/opt/test/iiq/appserver/secure/ssl/apache-iiq.key
Redirect /identityiq/ https://mitestui02.sn.test.net/
Redirect / https://mitestui02.sn.test.net/identityiq/
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /identityiq/ http://localhost:8080/identityiq/
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^OPTIONS
RewriteRule .* - [F]
<If "%{THE_REQUEST} =~ m#.jsf/?[?\s]#">
Header add X-UI-Source "mitestui02"
Header add X-UA-Compatible "IE=edge"
Header add Referrer-Policy "strict-origin-when-cross-origin"
Header add Feature-Policy "microphone 'none'; geolocation 'none'; usb 'none'; payment 'none'; document-domain 'none'; camera 'none'; display-capture 'none'; ambient-light-sensor 'none'"
Header add Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()"
Header add Strict-Transport-Security "max-age=63072000; includeSubDomains"
Header add Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'"
Header add X-Content-Type-Options "nosniff"
Header always edit Set-Cookie (.*) "$1; Secure; SameSite=Strict"
Header onsuccess edit Set-Cookie (.*) "$1; Secure; SameSite=Strict"
</If>
</VirtualHost>
当我连接到前端 URL 时,https://mitest.sn.test.net/ 我被重定向,响应代码为 302,并且 Location 标头指向 https://mitestui02.sn.test.net/identityiq/ 而不是 >https://mitest.sn.test.net/identityiq/ .
直接连接到 https://mitest.sn.test.net/identity/ 时不会发生这种情况。
我尝试过使用不同的 ProxyPass 和 ProxyPassReverse 指令,并且还重写了 Location 标头,但似乎没有任何帮助。 谢谢
【问题讨论】:
-
您提到的 302 似乎与您在 https 虚拟主机中定义的指令相匹配: Redirect / mitestui02.sn.test.net/identityiq 。如果你能解释在所有情况下你想做什么,那就更好了。如果您请求 / 或者如果您请求 /identityiq/ 等并远离可能冲突的重定向和 proxypass 指令,您想要什么,也就是说,如果您有一个指向路径的 proxypass 指令,为什么还要为它重定向?
-
感谢您的意见。当用户连接到:mitest.sn.test.net 或 mitest.sn.test.net/identityiq(有指向负载均衡器的 DNS 名称)时,请求应由后端服务器之一(例如 mitestui02)处理,无需重定向,例如用户他仍应在 URL 中查看 URL mitest,当用户连接到 mitest.sn.test.net/identityiq 时会发生这种情况,但连接到 mitest.sn.test.net 时不会发生这种情况
标签: apache reverse-proxy httpd.conf mod-proxy