谁能解决 nginx 规则 反向解析目录到 B 服务器 正常访问 图片 JS CSS 资源的问题,有红包 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mickey001
V2EX    PHP

谁能解决 nginx 规则 反向解析目录到 B 服务器 正常访问 图片 JS CSS 资源的问题,有红包

  •  
  •   mickey001 2018-03-18 00:32:33 +08:00 3306 次点击
    这是一个创建于 2771 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题描述:

    域名:www.ab12.com 域名主服务器:nginx
    域名主服务器 IP:192.168.1.10

    需要反向解析到的目录服务器

    p>aaa 目录 对应 服务器 IP 116.100.111.1 bbb 目录 对应 服务器 IP 116.110.111.2 ccc 目录 对应 服务器 IP 116.110.111.3

    需求:

    主服务器域名 www.ab12.com 需要分别 反向解析 3 个目录名到 目录服务器对应的 3 个 IP,如上;

    实现流程:

    1、在 www.ab12.com 站的 conf 伪静态规则里增加如下规则实现反向解析到目录服务器 IP 及定义目录名

    location /aaa { proxy_pass http://116.100.111.1/; }

    location /bbb { proxy_pass http://116.100.111.2/; }

    location /ccc { proxy_pass http://116.100.111.3/; }

    以上代码可以正常实现 目录反向解析到 目录名所在的服务器 IP ;

    可以通过 www.ab12.com/aaa/ www.ab12.com/bbb/ www.ab12.com/ccc/ 正常打开 目录服务器的网站;

    原理: 访问 URL www.ab12.com/aaa/ 时,主服务器 从 116.100.111.1 这台服务器的目录里抓取提取网站内容资源,缓存到 www.ab12.com 主站服务器里,然后解析显示网站;

    2、然后单独到 域名的 conf 规则里 写上如下代码,定义其中一个目录的静态资源路径解析:

    location ~ ^/(?!(aaa)).*.(js|css)?$ { expires 1h; access_log off; }

    location ~ ^/(?!(aaa)).*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 1h; access_log off; }

    配置好如上规则后, 然后浏览器输入 www.ab12.com/aaa/img/01.jpg 可以打开正常的图片;

    依葫芦画瓢:

    配置 bbb 目录的 静态资源路径:

    location ~ ^/(?!(bbb)).*.(js|css)?$ { expires 1h; access_log off; }

    location ~ ^/(?!(bbb)).*.(gif|jpg|jpeg|png|bmp|swf)$ { expires 1h; access_log off; }

    现在 问题发生了:

    www.ab12.com/aaa/img/01.jpg www.ab12.com/bbb/img/02.jpg

    全部都无法正常加载,返回 404 ;也就是访问静态资源丢失;

    分析问题:

    问题应该处在 配置静态资源规则写法有问题,以上代码,只能定义一个目录的静态资源路径,增加一个就全部完蛋,所以,应该是有 正则匹配 优先级的问题。

    所以,我的规则写的肯定有问题,找了好几个 技术,都没能帮我解决,兄弟们只是从 linux 系统找问题,其实系统本身根本没问题;

    本身 反向解析目录的原理 就是 A 服务器,从 B 服务器 抓取资源,返回到 A 服务器 通过 proxy_pass 缓存 B 服务器上抓取到的资源;

    所以静态资源,肯定要为每一个目录分别指定 静态资源路径才能解决;

    但是我虽然知道 问题在哪儿,但是我不会写 这种规则解决;

    最后,求助 V2EX 的 大牛们,帮忙解决下这个问题。。。

    能解决的,红包送上;

    拜托各位了。。帮帮忙,这个问题困扰我很久了。。找了不下 4 个人了,都没能解决

    有环境的,可以自己测试下;

    用你自己的域名,前提是您的服务器环境必须是 Linux centos nginx ;

    用你的域名 分别 反向解析 2 个目录

    比如 www.aaa.com/aaa/www.aaa.com/bbb/ 分别解析到 2 个 IP 所在的目录服务器;

    www.aaa.com/aaa/ 指向 http://xxx.xxx.xxx.111/ www.aaa.com/bbb/ 指向 http://xxx.xxx.xxx.222/

    然后在 目录端服务器里,分别上传 静态网页,里面放点 图片或者 CSS, 只要你能实现 输入 www.aaa.com/aaa/img/01.jpg www.aaa.com/bbb/img/02.jpg 能正常显示图片,就说明你的规则配置正确。您可以联系我,我测试后发红包给您;

    5 条回复    2018-03-23 10:10:40 +08:00
    mickey001
        1
    mickey001  
    OP
       2018-03-18 00:41:37 +08:00
    我的企鹅 号 : 二七四七零七零零九五
    alvinbone88
        2
    alvinbone88  
       2018-03-18 01:43:33 +08:00
    先把正则写对
    halfcrazy
        4
    halfcrazy  
       2018-03-18 02:14:19 +08:00
    @halfcrazy
    ```shell
    mkdir static_a static_b static_c
    echo a > static_a/a.txt
    echo b > static_bb.txt
    echo c > static_c/c.txt

    curl http://127.0.0.1:80/aaa/a.txt
    curl http://127.0.0.1:80/bbb/b.txt
    curl http://127.0.0.1:80/ccc/c.txt
    ```
    Bio
        5
    Bio  
       2018-03-23 10:10:40 +08:00 via iPhone
    关注,问题解决了吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2751 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 09:29 PVG 17:29 LAX 02:29 JFK 05:29
    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