记一次nginx代理的故事

故事发生在很久以前,家里有老人的回家问问,可能有知道的,话说盘古开天时期,您可别问,没有赶上的!

好了 ,言归正传。事情是这样的,一个项目让我做下nginx代理,多大点儿事儿。先去喝了杯水,然后找同事聊儿天。看看表,还有不到半个小时下班了。开始做nginx代理相关事情。首先做域名解析,然后nginx配置,一切很顺利。在还有十分钟的时候完事儿,ping了下域名,ok!打开浏览器访问下域名,不通。。。有点不妙。到nginx服务器curl后端服务,还好也是不通。可能后端服务没有开启。不管他了,反馈了nginx配置完成,可以解析。收拾东西关电脑,准备闪人。。。

写到这样您要是认为这样就结束了,那就是打错特错了。反馈nginx配置完成后,研发和我说后端服务已经起来了。我打开电脑,用浏览器打开后端服务,可以的。五雷轰顶,没有天理,为这么点破事儿要加班么。再次登录到nginx服务器,telnet后端服务器端口,依旧不通。ping后端服务器的ip,也是不通。显然是网络问题。看了想两边的ip,nginx 172 网段,后端服务10网段。一种被玩耍的感觉。看下时间,刚下班,感觉给网络同事打电话,我加班都别想走。

故事先讲到这里,开始说正题。从安全角度考虑,我们的服务器分为两部分。10网段主要是数据库和中间件服务,这个网络完全的和外网隔离;172网段属于应用网段,通过跳转可以访问外部网络。但实际上两个网段是可以互通的,由于nginx服务器完全暴露在外网,所以将nginx逻辑上与10网段隔离。(之前两个网段逻辑隔离,在使用过程中各种开放端口和跳转,搞的都烦了,然后就这样了)。现在由于应用网段服务器有点紧,把应用部署到数据网段了。我们把眼神飘向了网络。网络看了我一眼,把nginx服务器放开不可能,即使领导同意,那也的走流程,估计下周,下个月,保不齐就明年了。那就更内网服务的ip好了。网络这边也不可行,改ip网线换交换机,进入机房也需要审批。估计要两三天的时间。我们开了一眼项目经理,他恶狠狠的瞪了我们,好吧。。。研发拿出了手机,开始订餐。。。

这问题难道无解了么,关键时刻还的靠我们运维。

故事讲完了 ,开始说技术。我们现在需要一台服务器充当路由的部分功能,将10网段端口转发到172这边来,使得nginx服务器可以访问到。

大概就这样的一个流程。我们的系统是centos 7 我们使用firewalld进行转发

#首先开启转发。在/etc/sysctl.conf添加一行
net.ipv4.ip_forward = 1

#生效配置
sysctl -p

#端口转发

firewall-cmd --add-forward-port=port=8081:proto=tcp:toaddr=10.120.20.196:toport=8081 --permanent

#开启伪装IP

firewall-cmd --add-masquerade --permanent

#添加开放端口

firewall-cmd --zone=public --add-port=8081/tcp --permanent 

#重启firewall使生效

firewall-cmd --reload

#查看端口转发

firewall-cmd --list-forward

port=8081:proto=tcp:toport=8081:toaddr=10.120.20.196

#查看开放端口
firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources: 
  services: ssh dhcpv6-client
  ports: 8081/tcp
  protocols: 
  masquerade: yes
  forward-ports:port=8081:proto=tcp:toport=8081:toaddr=10.120.20.196
  source-ports: 
  icmp-blocks: 
  rich rules: 

其实操作很简单,但是可以解决实际问题。需要注意点 netstat 看不到相关端口。由于这个问题折腾了快半个小时。不到一个小时解决问题,同情的看了一眼正在等餐的研发同事,果断的回家了。不相信哥们的能力,活该加班。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值