我有一个在http端口8080和https端口8443上运行的服务,所有到端口8080的流量都被重定向到https 8443,这是在server.xml本身配置的。
要求:
使用端口80,8080,443,8443时的所有流量都应转移到8443而不会在URL下显示端口号
可能的解决方案:
我知道使用mod_proxy,masking和反向代理我们可以实现它(http://www.pothireddy.com/knowledge/environment/masking/)
问题在于我们是否可以使用IPTABLES来实现而不是mod_proxy解决方案,如果是这样,我们怎样才能实现它....
已经尝试过这样的事情:
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443 解决了当某人遇到443端口时的问题
当有人明确点击端口8443时,显示端口8443 在网址上?我们可以实现类似....只是为了掩盖 端口8443 iptables -t nat -A PREROUTING -p tcp --dport 8443 -j REDIRECT --to-port 8443
当我尝试时,如何将流量从端口80重定向到端口8443 使用下面的命令,看起来很混乱转移 从http端口到https端口的流量? iptables -t nat -A PREROUTING -p tcp --dport 8443 -j REDIRECT --to-port 8443
解决上述两个问题的任何可能的解决方案?
答案 0 :(得分:0)
如果你使用的是apache web-server,你可以在某个端口创建新的虚拟主机 http://wiki.apache.org/httpd/RedirectSSL
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName mysite.example.com
DocumentRoot /usr/local/apache2/htdocs
Redirect permanent /secure https://mysite.example.com/secure:8443
</VirtualHost>
<VirtualHost _default_:8443>
ServerName mysite.example.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
# etc...
</VirtualHost>