请问 Nginx 反代切割子域名如何实现 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
binbinyouliiii
V2EX    NGINX

请问 Nginx 反代切割子域名如何实现

  •  
  •   binbinyouliiii 2020 年 7 月 23 日 2713 次点击
    这是一个创建于 2102 天前的主题,其中的信息可能已经有所发展或是发生改变。

    标题一句话说不清楚,需求是这样的,假设有 a.com 的域名,希望 nginx 收到 ccc.bbb.a.com 的 host 能够反代到 ccc.bbb 这个 host 去,找了一下资料,没有找到怎么配置

    想要类似这样的配置:

    server_name ${child}.a.com; location / { proxy_pass http://${child}:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } 
    第 1 条附言    2020 年 7 月 23 日
    使用正则解决了,感谢各位
    ```
    listen 80;
    server_name ~^(?<subdomain>.+)\.a\.com$;

    location / {
    resolver 114.114.114.114;
    proxy_pass http://$subdomain;
    proxy_set_header Host $subdomain;
    }
    ```
    14 条回复    2020-07-23 11:24:18 +08:00
    joesonw
        1
    joesonw  
       2020 年 7 月 23 日
    你这个要配合 dns.
    binbinyouliiii
        2
    binbinyouliiii  
    OP
       2020 年 7 月 23 日
    @joesonw #1 已经将 *.a.com 的域名都解析到了 这个 IP,Nginx 这边不知道怎么设置
    suman
        3
    suman  
       2020 年 7 月 23 日
    配置 hosts
    ghostwwg
        4
    ghostwwg  
       2020 年 7 月 23 日
    @binbinyouliiii dns 有种记录叫做 cname
    aapeli
        5
    aapeli  
       2020 年 7 月 23 日 via iPhone   1
    4 、匹配正则表达式:

    server {
    listen 80;
    server_name ~^(?.+)\.howtocn\.org$;
    ...
    }
    binbinyouliiii
        6
    binbinyouliiii  
    OP
       2020 年 7 月 23 日
    @ghostwwg #4 我是要做动态的,是不只有 ccc.bbb.a.com 这一个域名
    aapeli
        7
    aapeli  
       2020 年 7 月 23 日 via iPhone
    nginx server_name 字段支持通配符和正则表达式
    aapeli
        8
    aapeli  
       2020 年 7 月 23 日 via iPhone
    @aapeli 好像回复错了
    takemeaway
        9
    takemeaway  
       2020 年 7 月 23 日
    这种跳转干嘛走 nginx 呢,直接入口就行了
    joesonw
        10
    joesonw  
       2020 年 7 月 23 日
    @binbinyouliiii 不要写 server_name, 然后 rewrite 应该是只可以改写 path. 你这个用 nginx lua 倒是可以实现.
    rrfeng
        11
    rrfeng  
       2020 年 7 月 23 日   1
    http://nginx.org/en/docs/http/server_names.html

    server_name 里可以使用命名正则提取你想要的变量

    proxy_pass 里可以使用这个变量
    GM
        12
    GM  
       2020 年 7 月 23 日   6
    nginx 问题问我就对了。

    server {
    listen 80;
    server_name ~^(?<subdomain>.+)\.hottocn\.org$;

    location / {
    proxy_pass http://backend_server/;
    proxy_set_header Host $subdomain.ccc.com;
    }

    #或者
    location / {
    proxy_pass http://$subdomain.ccc.com/;
    proxy_set_header Host $subdomain.ccc.com;
    }
    }
    ericgui
        13
    ericgui  
       2020 年 7 月 23 日
    @aapeli 正则一方面,容易出错;二方面,性能不行
    GM
        14
    GM  
       2020 年 7 月 23 日
    @ericgui 简单的正则没什么性能问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2248 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 00:02 PVG 08:02 LAX 17:02 JFK 20:02
    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