環境是Apache 2.2.29
網站1對外使用https,主要對外窗口
https://www.aaa.com.tw/index.php
內部IP是 192.168.1.100
網站2對外使用http,是一個簡單的網頁提供資料庫搜尋
http://192.168.0.101/query/index.jsp
內部IP是 192.168.1.101
需要在網站1中的幾個分頁中用iframe嵌入網站2的網頁
以下是網站1的設定檔:
http-vhosts.conf檔
<VirtualHost *:80>
DocumentRoot "/var/www/html/web"
ServerName www.aaa.com.tw
RewriteLog logs/rewrite.log
RewriteLogLevel 9
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/var/www/html/web/mainsubsite.map
RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI}
ErrorLog logs/aaa_error_log
CustomLog logs/aaa_log common
addDefaultCharset UTF-8
</VirtualHost>
ssl.conf檔
<VirtualHost _default_:443>
DocumentRoot "/var/www/html/web"
ServerName www.aaa.com.tw
ErrorLog logs/ssl_aaa_error.log
TransferLog logs/ssl_aaa_access.log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/aaa/aaa.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
RewriteLog logs/rewrite.log
RewriteLogLevel 0
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/var/www/html/web/mainsubsite.map
RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1 [E=VHOST:${lowercase:%{HTTP_HOST}}]
# ProxyPreserveHost on
ProxyRequests Off
ProxyPass / http://192.168.1.101/query retry=0
ProxyPassReverse / http://192.168.1.101/query retry=0
RedirectMatch ^/$ https://www.aaa.com.tw/query
# <Proxy *>
# Order Deny,Allow
# Deny from all
# #內部 IP
# Allow from 10.1.1
# #外部 IP
# Allow from 163.29.185.99
# </Proxy>
# ProxyPreserveHost on
</VirtualHost>
想要讓最後嵌入的網頁變成類似這樣:
https://www.aaa.com.tw/query/index.jsp
目前還在找資料嘗試,想請教各位先進:設定ProxyPass這個方法可行嗎?
如內容或觀念不對,還請各位先進指正。
即使是iframe,仍然代表的是由client去存取網站2
所以當用戶是處於internet時,iframe中的網站2內容是不會出來的
我記得 https 網頁內不能使用 iframe 非https 的頁面,會被流量器阻擋。
要在 https 的那台 server 上弄個反向代理,首先要先確定是否有載入 proxy 的模組
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so