V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
darknoll
V2EX  ›  程序员

前后端分离的网站,能否共用同一个域名

  •  
  •   darknoll · 2020-04-01 08:57:43 +08:00 · 7342 次点击
    这是一个创建于 1699 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如原先前端是 www.x.com ,后端是 api.x.com 现在后端想改成 www.x.com/api 这样的形式 前端部署在 Windows 的 IIS,后端直接用 go 生成的 exe 直接运行,前后端都需要 https

    26 条回复    2020-04-01 21:05:52 +08:00
    wszgrcy
        1
    wszgrcy  
       2020-04-01 08:59:12 +08:00 via Android   ❤️ 16
    小朋友你是否有很多问号?
    l1nyanm1ng
        2
    l1nyanm1ng  
       2020-04-01 08:59:23 +08:00
    用服务器转发一下就行了,就是所谓的反向代理,我也不知道为什么要翻译成反向代理
    licoycn
        3
    licoycn  
       2020-04-01 09:00:07 +08:00
    nginx
    sundev
        4
    sundev  
       2020-04-01 09:00:24 +08:00
    IIS 安装 ARR 使用反向代理。
    hanxiV2EX
        5
    hanxiV2EX  
       2020-04-01 09:02:28 +08:00 via Android
    搜 caddy 反向代理

    / {
    proxy / http://www.x.com
    }

    /api {
    proxy / http://api.x.com
    }
    ETO
        6
    ETO  
       2020-04-01 09:03:20 +08:00
    可以的,设置一下 nginx 的转发规则,或者后端程序细节加个端口号也是可以的吧。
    metinfo
        7
    metinfo  
       2020-04-01 09:15:06 +08:00
    看看我们的 DEMO 站吧,看完就明白了,前端 demo.metinfo.cn 后端 demo.metinfo.cn/admin/
    还是不明白就下载开源安装包自己安装试试吧
    lhx2008
        8
    lhx2008  
       2020-04-01 09:17:04 +08:00 via Android
    IiS 配一下转发规则就可以了,再装 nginx 干啥
    ellermister
        9
    ellermister  
       2020-04-01 09:20:50 +08:00 via Android
    如果你两个站都是根路径,后端段配置如下:
    location ^~ /api/ { proxy_pass https://example.com:4433/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }

    ^为了匹配前缀,增加优先级。
    4433 后的 /是为了将外层网络的二级目录转发到内层网络的一级目录,当然也可以 2,3 级。
    https://eller.tech/post/41
    x66128
        10
    x66128  
       2020-04-01 09:24:46 +08:00
    我想说!你不是可以开端口吗?
    Cbdy
        11
    Cbdy  
       2020-04-01 09:25:40 +08:00
    ryncv
        12
    ryncv  
       2020-04-01 09:27:47 +08:00
    @l1nyanm1ng 反向可以理解为跟正向代理相对应..
    正向: (客户端-代理服务器) - 真实服务器
    反向: 客户端 - (代理服务器-真实服务器)
    shawshi
        13
    shawshi  
       2020-04-01 09:33:41 +08:00
    可以 加一层 nginx
    wangyzj
        14
    wangyzj  
       2020-04-01 10:47:56 +08:00
    俺就是这么搞得
    littlewing
        15
    littlewing  
       2020-04-01 11:18:40 +08:00
    nginx 配置分流规则,发到后端不同的服务器上
    0x666666
        16
    0x666666  
       2020-04-01 11:22:59 +08:00
    我觉得还是用二三级域名来区分好一点
    xmge
        17
    xmge  
       2020-04-01 11:25:04 +08:00
    nginx /api 就 ok 了。
    labulaka521
        18
    labulaka521  
       2020-04-01 12:11:07 +08:00
    可以
    momocraft
        19
    momocraft  
       2020-04-01 12:13:40 +08:00
    技術上可以, 實際上這樣做麻煩更多 (比如 cdn)
    loading
        20
    loading  
       2020-04-01 12:15:47 +08:00 via Android
    你需要知道的东西叫:

    跨域

    不难的。
    myqoo
        21
    myqoo  
       2020-04-01 15:20:05 +08:00
    可以,有个浏览器黑科技可以解决
    oneisall8955
        22
    oneisall8955  
       2020-04-01 16:08:30 +08:00 via Android
    反向代理设置一下
    MorningBOBO
        23
    MorningBOBO  
       2020-04-01 16:12:17 +08:00
    不建议这样
    fuis
        24
    fuis  
       2020-04-01 16:13:13 +08:00
    反代一下就行了
    Mithril
        25
    Mithril  
       2020-04-01 16:13:30 +08:00
    IIS 直接配置一个转发规则就可以了
    topman
        26
    topman  
       2020-04-01 21:05:52 +08:00
    你都用 go 了,写一个反向代理就是不到 100 行代码的事
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1650 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.