Ngnix 奇怪问题...不知道怎么解决 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
jbue520
V2EX    NGINX

Ngnix 奇怪问题...不知道怎么解决

  •  
  •   jbue520 Dec 25, 2021 3806 views
    This topic created in 1595 days ago, the information mentioned may be changed or developed.

    这个是服务器的架构,域名解析到 186.16.15.12 的外网 IP 上,然后 186.16.15.12 上安装 NGNIX ,反向代理到 192.168.1.1 上,因为涉及到微信公众号,所以已经把 186.16.15.12 的 IP 加入到白名单上,但是出现一个奇怪的问题,服务器访问公众号的时候,却是另一个 IP 地址去访问,就是 221.221.221.221 的 IP 去访问微信公众号,导致访问不上.. 所以我的问题就是这个是怎么发生的?如何让固定的 IP 186.16.15.12 去访问公众号?如果要全部外网 IP 加入到白名单里,那如果我有多条外网线路,那不是都要加进去?

    15 replies    2022-01-04 17:18:52 +08:00
    chairuosen
        1
    chairuosen  
       Dec 25, 2021
    出口和入口不一样很正常 ,186.16.15.12 只是公网进来的流量,走域名->nginx ,是由外向内的流量。你业务请求公众号是由内到外是不走这条路的,除非反过来是公众号请求你的域名。你要搜索的是如何指定网卡 IP 发请求(如果 221 是绑在你内网机器的,我猜不是),或者问运维内网机器出口网关是哪怎么指定
    jbue520
        2
    jbue520  
    OP
       Dec 25, 2021
    Nginx 这台服务器是 windows 的,有没有什么方法让出口 IP 访问请求固定为 186.16.15.12 这个呢??
    sujin190
        3
    sujin190  
       Dec 25, 2021
    @jbue520 #2 调路由优先级啊,网络基础了吧,如果在本机的话也可以打开 socket 的 bind 到对应网卡上去

    如果云主机买的公网 ip 这种的话,以上两种方式就不行了,但是云主机后台都有设为出口 ip 这样的功能吧,你可以找找看

    话说把所有 ip 都加到白名单里就是了,干嘛这么纠结?
    gtchan13579
        4
    gtchan13579  
       Dec 26, 2021 via iPhone
    可以设置 acl 或者添加静态路由表,具体要看你路由表。
    jbue520
        5
    jbue520  
    OP
       Dec 26, 2021
    @sujin190 主要是服务器托管了,最简单的方法肯定是添加白名单,但是公众号不单单一个,而且管理员还不同,还得一个一个的去联系,太麻烦了!
    jbue520
        6
    jbue520  
    OP
       Dec 26, 2021
    @gtchan13579 现在就是服务器是托管出去,只能改路由表么?
    ik
        7
    ik  
       Dec 26, 2021 via iPhone
    没太看懂你的描述,nginx 是不是有配置这两条呢?

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    Kinnice
        8
    Kinnice  
       Dec 26, 2021 via Android
    route -n 把第一行删了
    thunderw
        9
    thunderw  
       Dec 26, 2021
    @jbue520 托管出去的,那一个电话过去让机房帮你改?
    ch2
        10
    ch2  
       Dec 26, 2021
    改一下路由表记录的优先级
    到 0.0.0.0/32 的全部路由表记录中,221.221.221.221 的 metric 优先级比 186.16.15.12 的更高
    所以对外发请求的时候会通过 221.221.221.221 发出去
    Xusually
        11
    Xusually  
       Dec 26, 2021 via iPhone
    defaut gw 的问题
    改路由表就行
    你需要的出口优先级调高就可以了
    akira
        12
    akira  
       Dec 26, 2021
    如果是阿里云的 vpc 的话,应该是 dnet 和 snet 的配置问题,出口 ip 配一下就好
    msg7086
        13
    msg7086  
       Dec 26, 2021
    AlexEzio
        14
    AlexEzio  
       Dec 27, 2021
    这个问题和 nginx 没有关系, 原因在于出口多线路时,网关路由策略的选择导致了不同路线出口。
    内网客户端无法决定网关路由策略,因此最佳方案是通过网关层策略修改来达到预期的效果。

    解决方法:
    # 网关层
    1. 固定外网 IP ,建议把所有 IP 加入微信白名单,因为多线路场景,对应的是多运营商与负载均衡,不同运营商的流量走不同的路线,以获取最佳速度
    2. 如果 IP 过多,想指定某一条路线走特定流量,可以通过路由层,加上策略路由,通过七层策略,匹配所有*.weixin.com 的 http host 头流量走特定 IP 出口。
    # 客户端层
    3. 如果路由层不支持七层策略,可以咨询运维人员,获取具体的四层策略,比如联通 IP 走哪个,电信 IP 走哪个。 然后手动修改服务器 host ,将微信服务器指向特定的运营商 IP , 来保持请求总是走到对应的外网路线上
    4. 如果外网是动态 IP ,客户端需要编写脚本,定期获取自己的外网地址,然后通过微信的 api,进行白名单刷新。 这也是常用手段之一
    yadgen
        15
    yadgen  
       Jan 4, 2022
    整一个网关。
    About     Help     Advertise     Blog     API     FAQ     Solana     5545 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 71ms UTC 03:44 PVG 11:44 LAX 20:44 JFK 23:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86