1

我有一个在 http 端口 8080 和 https 端口 8443 上运行的服务,并且到端口 8080 的所有流量都被重定向到在 server.xml 本身上配置的 https 8443。

要求 :

使用端口 80,8080,443,8443 时的所有流量都应转移到 8443,而 URL 下不会显示端口号

可能的解决方案 :

我知道使用 mod_proxy、屏蔽和反向代理我们可以实现它(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 时的问题

  1. 当有人明确点击端口 8443 时,端口 8443 会显示在 url 上吗?我们可以实现类似 .... 只是为了屏蔽端口 8443 iptables -t nat -A PREROUTING -p tcp --dport 8443 -j REDIRECT --to-port 8443

  2. 如何将流量从端口 80 重定向到端口 8443,当我尝试使用以下命令时,看起来将流量从 http 端口转移到 https 端口感到困惑?iptables -t nat -A PREROUTING -p tcp --dport 8443 -j REDIRECT --to-port 8443

解决上述两个问题的任何可能解决方案?

4

1 回答 1

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>
于 2013-10-29T09:39:33.517 回答