我想为我的 tomcat 应用程序使用反向代理(nginx 或 apache)。我想将端口 80、443 从反向代理重定向到 tomcat 端口 8080、8443。设置反向代理后,必须打开哪个端口以进行入站和出站?
对吗?iptables inbound:开放端口 80、443 iptables outbound:开放端口 8080、8443
亲切的问候
黑胡子
答案1
ATCP连接始终在两个(而不是多个)参与者之间进行。每个参与者都有一个 IP 地址和端口。因此,实际上,当您使用反向代理时,您需要:
- 客户端
<client_IP>:<random_port>
和nginx<server_public_IP>:80
通过您的物理接口。 - 之间的联系nginx
127.0.0.1:80
和雄猫127.0.0.1:8080
通过环回接口。
防火墙没有理由阻止环回接口上的通信。因此,您可能希望允许传入流量目的地端口80
和443
出站流量来源港口80
和443
。
然而,通常情况下,出站流量是不是阻止(策略ACCEPT
),您只需要以下 iptables 规则:
iptables -A INPUT -i lo -j ACCEPT # loopback interface
# don't block existing traffic
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m comment nginx -j ACCEPT
# Probably you want to allow ssh
iptables -A INPUT -p tcp --dport 22 -m comment SSH -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
附言:您还可以运行雄猫直接在端口上80
并443
具有相同的防火墙规则。