请问 Nginx 反代切割子域名如何实现 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
binbinyouliiii
V2EX    NGINX

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

  •  
  •   binbinyouliiii Jul 23, 2020 2716 views
    This topic created in 2104 days ago, the information mentioned may be changed or developed.

    标题一句话说不清楚,需求是这样的,假设有 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; } 
    Supplement 1    Jul 23, 2020
    使用正则解决了,感谢各位
    ```
    listen 80;
    server_name ~^(?<subdomain>.+)\.a\.com$;

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

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

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

    proxy_pass 里可以使用这个变量
    GM
        12
    GM  
       Jul 23, 2020   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  
       Jul 23, 2020
    @aapeli 正则一方面,容易出错;二方面,性能不行
    GM
        14
    GM  
       Jul 23, 2020
    @ericgui 简单的正则没什么性能问题
    About     Help     Advertise     Blog     API     FAQ     Solana     4145 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 53ms UTC 05:22 PVG 13:22 LAX 22:22 JFK 01:22
    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