首页 > 编程知识 正文

nginx 代理服务器 访问外网,使用nginx代理请求到内网

时间:2023-05-05 12:30:35 阅读:233477 作者:731

Nginx代理内网服务器访问外网 1.SpringBoot工程配置文件改写2. SpringBoot静态工具类注入配置文件变量3. SpringBoot 使用4. 配置Nginx

问题描述:
有一台服务器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

# 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;@Componentpublic 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

这里注意 以^~后面的会截取,并且proxy_pass后面域名也要加上/
才能自定义前缀

# 百度地图 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/; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。