我有一个在本地IP 192.168.0.14上运行的Apache。Internet对myweb.domain.sk的请求将转发到192.168.0.14:4444。Apache应该只代理请求。
在本地网络主机运行Web应用程序MyWeb即可(MS IIS,不同的IP地址),并同时通过从本地网络访问的http://myweb.domain.sk和http小号://myweb.domain.sk。
但是,从Internet上,我无法通过HTTP(仅HTTPS)访问Web。这是Apache的设置:
<VirtualHost 192.168.0.14:4444>
ServerName myweb.domain.sk
ServerAlias myweb.domain.sk
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
ProxyVia Block
ProxyPreserveHost Off
ProxyPassMatch ^/?(.*) https://myweb.domain.sk/$1
ProxyPassReverse / https://myweb.domain.sk/
SSLEngine on
SSLProxyEngine on
SSLCertificateFile "conf/ssl.crt/myweb.cer"
SSLCertificateKeyFile "conf/ssl.key/myweb.key"
LogLevel debug
</VirtualHost>
我还应该怎么做才能通过http://myweb.domain.sk访问Web ?谢谢
HTTP和HTTPS必须使用不同的端口。由于Apache的VirtualHost块将端口作为其标识的一部分,因此您需要针对同一域的两个VirtualHost块-一个带SSLEngine on
,另一个不带。(每个端口Listen
在路由器中也需要相应的选项和端口转发规则。)
# Port forwarding WAN:443 -> 192.168.0.14:4444
<VirtualHost 192.168.0.14:4444>
ServerName myweb.domain.sk
ServerAlias myweb.domain.sk
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
ProxyVia Block
ProxyPreserveHost Off
ProxyPassMatch ^/?(.*) https://myweb.domain.sk/$1
ProxyPassReverse / https://myweb.domain.sk/
SSLEngine on
SSLProxyEngine on
SSLCertificateFile "conf/ssl.crt/myweb.cer"
SSLCertificateKeyFile "conf/ssl.key/myweb.key"
LogLevel debug
</VirtualHost>
# Port forwarding WAN:80 -> 192.168.0.14:8888
<VirtualHost 192.168.0.14:8888>
ServerName myweb.domain.sk
ServerAlias myweb.domain.sk
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
ProxyVia Block
ProxyPreserveHost Off
ProxyPassMatch ^/?(.*) https://myweb.domain.sk/$1
ProxyPassReverse / https://myweb.domain.sk/
SSLProxyEngine on
LogLevel debug
</VirtualHost>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句