V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
FenixVu
V2EX  ›  问与答

内网外能共用一个前端么?

  •  
  •   FenixVu · 2022-05-12 10:00:28 +08:00 · 2460 次点击
    这是一个创建于 926 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有个项目内网也要用外网也要用,但是分别部署维护起来很麻烦 例如前端的请求地址是这个

    https://www.baidu.com:12345/api/system/download_file 
    

    能不能通过 nginx 把这个请求转发到内网,且不影响外网的请求

    10.0.0.1:12345/api/system/download_file
    
    17 条回复    2022-05-12 16:05:03 +08:00
    xiangyuecn
        1
    xiangyuecn  
       2022-05-12 10:20:45 +08:00
    你结尾不是给自己答案了么,就是 ip 变来变去麻烦,通过 DDNS 可解
    lower
        2
    lower  
       2022-05-12 10:47:15 +08:00   ❤️ 1
    nginx 反向代理不就是干这种事情的么
    cangcang
        3
    cangcang  
       2022-05-12 11:25:11 +08:00
    内网网关那儿配个 DNS 就挺好的
    marcojbk
        4
    marcojbk  
       2022-05-12 11:35:58 +08:00 via iPhone
    是一台服务器是吧?那就内网用内网地址访问,外网用外网地址访问不就行了
    FenixVu
        5
    FenixVu  
    OP
       2022-05-12 11:36:00 +08:00
    @lower 请问这个需求 咋写啊是直接在 location 里 rewrite 么
    lower
        6
    lower  
       2022-05-12 11:43:50 +08:00
    @FenixVu location 里 proxy_pass 10.0.0.1:12345
    FenixVu
        7
    FenixVu  
    OP
       2022-05-12 11:49:05 +08:00
    @lower
    ```
    listen 80;
    listen 443 ssl;
    server_name www.xxxcom;
    ssl_certificate /var/log/nginx/xxxcom_bundle.pem;
    ssl_certificate_key /var/log/nginx/xxx.com.key;

    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;

    root /usr/share/nginx/html;
    index index.html;

    location / {
    proxy_pass http://10.0.0.1:12345/;
    }
    ```
    这是外网访问 xxx 的请求转发到服务器 10.0.0.1 的 12345 上
    但是我内网没法访问 xxx 啊
    FenixVu
        8
    FenixVu  
    OP
       2022-05-12 11:56:57 +08:00
    @xiangyuecn 有啥实践的文档么
    cpstar
        9
    cpstar  
       2022-05-12 12:01:38 +08:00
    经过 7#,愣没看懂啥需求。
    内网没办法访问 xxx ,那就得上域名解析的,把 xxx.com 指向 10.0.0.1 ,剩下的就是内网访问 10.0.0.1 了。根本不需要反代
    xiangyuecn
        10
    xiangyuecn  
       2022-05-12 12:03:05 +08:00
    @FenixVu #8 花生壳,配在内网路由器里面就可以了,外网通过花生壳提供的域名访问内网网站
    Danfi
        11
    Danfi  
       2022-05-12 12:28:35 +08:00
    前后端共用一个 Nginx 端口,按路径代理各自的服务,前端不要配置接口 ip 或者域名,配路径
    licoycn
        12
    licoycn  
       2022-05-12 13:34:28 +08:00
    如果你们内网的路由器有外网 IP 的话,直接 DDNS 动态解析即可,如果没有就只可以用内网穿透之类的工具来解决
    lower
        13
    lower  
       2022-05-12 14:30:30 +08:00
    @FenixVu 内网没法访问 xxx 域名,可能是你的办公网和 xxx 域名解析的公网 ip 的服务器所在的内部网段不一致……
    估计要在主路由器上做配置……
    要是只是你本地电脑需要的话,在 host 里把 xxx 域名 解析到 10.0.0.1 ip 应该就可以
    lower
        14
    lower  
       2022-05-12 14:36:13 +08:00
    @cpstar op 应该是办公网络访问不通 xxx 域名解析到的他们的公网 ip 的服务器,如果是这样的话,感觉在应用层面搞不了,需要有网管权限去路由器配置一下
    FenixVu
        15
    FenixVu  
    OP
       2022-05-12 15:13:10 +08:00
    @lower 我刚才也这么想的写了个批处理丢给客户,客户说公司上百台电脑,不可能一个个都去执行一遍
    我最后绕了一圈还是单独部署了一个内网前端...
    lower
        16
    lower  
       2022-05-12 15:34:25 +08:00
    @FenixVu 11 楼说的方式应该可行,相当于访问相对路径,外网用域名访问前端项目,后端地址自动走域名;内网用 ip 访问前端项目,后端地址自动都走 ip
    1a7489
        17
    1a7489  
       2022-05-12 16:05:03 +08:00
    内网定时任务拉取
    或者内网 frp+webhook
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:14 · PVG 16:14 · LAX 00:14 · JFK 03:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.