重定向活动端口

重定向活动端口

环境:从应用程序服务器请求特定端口上的页面的 Web 服务器。

问题:如果在应用程序服务器上运行的某个Web应用程序重新启动期间页面请求进入应用程序服务器,则启动会被破坏。

问题:是否可以在启动 Web 应用程序的 shell 脚本的开头包含特定端口(或重定向)上的某种块?这必须“即时”工作,当然在 shell 脚本结束时反转,以便一旦应用程序启动并运行,请求就会正常流动。

答案1

在应用程序服务器计算机上:

启动应用程序之前:

iptables -I INPUT -d <app server ip> --dport <app server port> -j REJECT

启动完成后:

iptables -D INPUT -d <app server ip> --dport <app server port> -j REJECT

如果需要,您也可以将流量重定向到另一台显示“应用程序正在加载”的服务器。如果是这种情况,请更换:

-j REJECT

-j DNAT --to-destination <ip address of other machine>

在这两个命令上。请注意,如果这样做,您需要启用 IP 转发。需要配置:

net.ipv4.ip_forward = 1

/etc/sysctl.conf

这将在下次启动时生效。要立即应用于正在运行的系统:

echo 1 > /proc/sys/net/ipv4/ip_forward

您可能还需要伪装从应用程序服务器流向服务器的流量,使接收服务器看起来像是源自该服务器(即重写源 IP 地址)。您可以通过以下方式做到这一点:

iptables -t nat -I POSTROUTING -o <interface traffic will get out> -j MASQUERADE

另一种选择是,如果您在与应用程序服务器相同的计算机上有另一台服务器,在不同的端口中,可以显示“应用程序正在加载页面”,您可以将流量重定向到该端口。同样的想法,只是代替 REJECT/DNAT:

-j REDIRECT --to-port <other local server port number>

此选项不需要将您的应用程序服务器转换为路由器:)(不需要 ip_forward)

相关内容