1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Nginx代理内网服务器访问外网

Nginx代理内网服务器访问外网

时间:2022-06-29 08:23:48

相关推荐

Nginx代理内网服务器访问外网

Nginx代理内网服务器访问外网

1.SpringBoot工程配置文件改写2. SpringBoot静态工具类注入配置文件变量3. SpringBoot 使用4. 配置Nginx

问题描述:

有一台服务器A可以访问外网,

服务器B和服务器C和A在一个局域网内,

并且无法访问外网.

想通过A的中转B/C都可以访问外网

请求都是http

1.SpringBoot工程配置文件改写

# dev开发域名访问配置domain:baidu-map: api.tianditu-map: api.gaode-map: weixin: api.

# prod线上域名访问配置# 域名访问配置domain:baidu-map: 内网ip:内网互通端口/baiduMaptianditu-map: 内网ip:内网互通端口/tiandituMapgaode-map: 内网ip:内网互通端口/gaodeMapweixin: 内网ip:内网互通端口/weixinUrl

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

import org.springframework.beans.factory.annotation.Value;import org.ponent;@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./;}# 高德地图location ^~/gaodeMap/ {proxy_pass /;}# 天地图location ^~/tiandituMap/ {proxy_pass http://api./;}# 微信location ^~/weixinUrl/ {proxy_pass http://api./;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。