问题描述:
有一台服务器A可以访问外网,
服务器B和服务器C和A在一个局域网内,
并且无法访问外网.
想通过A的中转B/C都可以访问外网
请求都是http

1.SpringBoot工程配置文件改写

# dev开发域名访问配置
domain:
  baidu-map: api.map.baidu.com
  tianditu-map: api.tianditu.gov.cn
  gaode-map: restapi.amap.com
  weixin: api.weixin.qq.com
强大到让人膜拜的MobaXterm
# prod线上域名访问配置
# 域名访问配置
domain:
  baidu-map: 内网ip:内网互通端口/baiduMap
  tianditu-map: 内网ip:内网互通端口/tiandituMap
  gaode-map: 内网ip:内网互通端口/gaodeMap
  weixin: 内网ip:内网互通端口/weixinUrl

2. SpringBoot静态工具类注入配置文件变量

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class DomainConfig {
    private static String baiDuDomain;
    private static String tianDiTuDomain;
    private static String gaoDeDomain;
    private static String weiXinDomain;

    public static String getBaiDuDomain() {
        return baiDuDomain;
    }

    @Value("${domain.baidu-map}")
    public void setBaiDuDomain(String baiDuDomain) {
        DomainConfig.baiDuDomain = baiDuDomain;
    }

    public static String getTianDiTuDomain() {
        return tianDiTuDomain;
    }

    @Value("${domain.tianditu-map}")
    public void setTianDiTuDomain(String tianDiTuDomain) {
        DomainConfig.tianDiTuDomain = tianDiTuDomain;
    }

    public static String getGaoDeDomain() {
        return gaoDeDomain;
    }

    @Value("${domain.gaode-map}")
    public void setGaoDeDomain(String gaoDeDomain) {
        DomainConfig.gaoDeDomain = gaoDeDomain;
    }

    public static String getWeiXinDomain() {
        return weiXinDomain;
    }

    @Value("${domain.weixin}")
    public void setWeiXinDomain(String weiXinDomain) {
        DomainConfig.weiXinDomain = weiXinDomain;
    }

}

3. SpringBoot 使用

注意: 这里的请求都是http, https需要配置nginx(这里不做介绍)

private static String baiDuDomain = DomainConfig.getBaiDuDomain();
	// 替换掉原有域名, 根据配置文件自动设置
	public static String ADMIN_DIVISION__URL = "http://"+baiDuDomain+"/place/v2/search?query=QUERY&tag=TAG&region=REGION&output=json&ak=" + API_KEY; // GET请求

4. 配置Nginx

^~/
 # 百度地图
        location ^~/baiduMap/ {
             proxy_pass http://api.map.baidu.com/;
        }

        # 高德地图
        location ^~/gaodeMap/ {
             proxy_pass http://restapi.amap.com/;
        }

        # 天地图
        location ^~/tiandituMap/ {
             proxy_pass http://api.tianditu.gov.cn/;
        }

        # 微信
        location ^~/weixinUrl/ {
             proxy_pass http://api.weixin.qq.com/;
        }

阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。