精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我們一起聊聊如何通過Java實現類似Nginx代理

開發 項目管理
最近遇到一個問題,在內網環境中部署的項目需要調用外網完成一些應用,一般情況我們可以通過增加一臺機器,部署到可以訪問外網的服務器上,然后內網直接連接該機器通過Nginx進行代理即可。

proxy-spring-boot-starter

最近遇到一個問題,在內網環境中部署的項目需要調用外網完成一些應用,一般情況我們可以通過增加一臺機器,部署到可以訪問外網的服務器上,然后內網直接連接該機器通過Nginx進行代理即可。但是出于安全考慮以及各個服務都是由多個微服務組成,需要接入SSO實現認證后才能訪問。

實現過程

  1. 定義一個配置文件,后面可以在application.yml中通過配置實現代理不同網站。
@Getter
@Setter
@ConfigurationProperties(prefix = "proxy")
public class ProxyProperties {

    /**
     * 需要代理的服務列表
     */
    private Map<String,Server> servers;

    /**
     *
     */
    @Getter@Setter
    public static class Server{

        private String path;

        private String target;

        private String name;

    }

}
  1. 引入Spring依賴,在編寫配置時可以自動提示。
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-autoconfigure-processor</artifactId>
    <optional>true</optional>
</dependency>
  1. 該功能實現的主要依賴。
<dependency>
    <groupId>org.mitre.dsmiley.httpproxy</groupId>
    <artifactId>smiley-http-proxy-servlet</artifactId>
    <version>2.0</version>
</dependency>
  1. 增加AutoConfiguration,包含兩個步驟。

a) 定義一個ProxyServletConfiguration配置 這里我們基于ImportBeanDefinitionRegistrar接口,動態讀取代理服務列表,然后通過ServletRegistrationBean創建Servlet代碼。

public static class ProxyServleImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar, EnvironmentAware {

        private ProxyProperties properties;

        @Override
        public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
            Map<String, ProxyProperties.Server> servers = properties.getServers();
            if( !CollectionUtils.isEmpty( servers ) ){
                for(Map.Entry<String, ProxyProperties.Server> entry : servers.entrySet()){
                    ProxyProperties.Server server = entry.getValue();
                    LOGGER.info("開始注冊服務代理:{} ( {} => {})", server.getName(), server.getPath(), server.getTarget());
                    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(ServletRegistrationBean.class);
//                    builder.addConstructorArgValue(new ProxyServlet() ).addConstructorArgValue(server.getPath());
                    builder.setFactoryMethodOnBean("getServletRegistrationBean", "proxyServletFactory");
                    builder.addConstructorArgValue(entry.getKey()).addConstructorArgValue(entry.getValue());
                    registry.registerBeanDefinition(entry.getKey()+"ServletRegistrationBean", builder.getBeanDefinition());
                }
            }
        }

        @Override
        public void setEnvironment(Environment environment) {
            String prefix = Objects.requireNonNull(AnnotationUtils.getAnnotation(ProxyProperties.class, ConfigurationProperties.class)).prefix();
            properties = Binder.get(environment).bind(prefix, ProxyProperties.class).get();
        }

    }
public static ServletRegistrationBean createServletRegistrationBean(String key, ProxyProperties.Server server){
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new ProxyServlet(), server.getPath());
        servletRegistrationBean.setName(server.getName());
        servletRegistrationBean.addInitParameter(ProxyServlet.P_TARGET_URI, server.getTarget());
        servletRegistrationBean.addInitParameter(ProxyServlet.P_LOG, String.valueOf(true));
        // 自動處理重定向
//        servletRegistrationBean.addInitParameter(ProxyServlet.P_HANDLEREDIRECTS, String.valueOf(false));
//        // 保持 COOKIES 不變
        servletRegistrationBean.addInitParameter(ProxyServlet.P_PRESERVECOOKIES, String.valueOf(true));
//        // Set-Cookie 服務器響應標頭中保持 cookie 路徑不變
        servletRegistrationBean.addInitParameter(ProxyServlet.P_PRESERVECOOKIEPATH, String.valueOf(true));
//        // 保持 HOST 參數不變
//        servletRegistrationBean.addInitParameter(ProxyServlet.P_PRESERVEHOST, String.valueOf(true));
        return servletRegistrationBean;
    }

b) 通過在src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports中引入上面的配置,這樣其他模塊只需要引入該jar則會由Spring自動注入 Configuration。

cn.cycad.proxy.config.ProxyServletConfiguration

使用方法

使用方式非常簡單,在配置文件中添加代理的配置,啟動服務即可:

  1. 修改配置文件application.yml
proxy:
  servers:
    Baidu:
      path: /baidu/*
      target: 'https://www.baidu.com'
      name: 百度
    Shici:
      path: /shici/*
      target: 'https://v1.jinrishici.com'
      name: 詩詞
  1. 啟動服務
  2. 示例 http://localhost:8080/shici

可以看到返回的內容與https://v1.jinrishici.com相同。

{
  "welcome": "歡迎使用古詩詞·一言",
  "api-document": "下面為本API可用的所有類型,使用時,在鏈接最后面加上 .svg / .txt / .json / .png 可以獲得不同格式的輸出",
  "help": "具體安裝方法請訪問項目首頁 https://gushi.ci/",
  "list": [
    {
      "全部": "https://v1.jinrishici.com/all"
    },
    {
      "抒情": "https://v1.jinrishici.com/shuqing"
    },
    {
      "四季": "https://v1.jinrishici.com/siji"
    },
    {
      "山水": "https://v1.jinrishici.com/shanshui"
    },
    {
      "天氣": "https://v1.jinrishici.com/tianqi"
    }
  ]
}

優缺點

  • 通過該方式實現首先需要有一個可以訪問外網的服務器,同時該服務器和內網環境互通
  • 如果需要添加認證模塊,直接引入即可
  • 如果代理的網站需要更多的信息才能訪問,則需要進一步擴展
責任編輯:武曉燕 來源: Java技術指北
相關推薦

2024-11-27 16:07:45

2024-07-16 10:25:27

2024-03-26 07:38:16

正向代理反向代理代碼

2025-03-27 02:00:00

SPIJava接口

2022-07-29 08:17:46

Java對象內存

2024-06-27 16:13:32

提升用戶體驗流式

2024-09-30 09:33:31

2023-06-30 08:18:51

敏捷開發模式

2023-08-10 08:28:46

網絡編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2022-05-24 08:21:16

數據安全API

2023-09-10 21:42:31

2024-09-09 00:00:00

編寫技術文檔

2023-04-03 00:09:13

2024-02-20 21:34:16

循環GolangGo

2021-08-27 07:06:10

IOJava抽象

2022-12-06 08:12:11

Java關鍵字

2023-11-10 08:04:43

Java 17Java 11JDK

2024-12-10 00:00:25

2021-12-10 07:45:48

字節音頻視頻
點贊
收藏

51CTO技術棧公眾號

日韩在线小视频| 五月香视频在线观看| 91禁在线看| 蜜桃视频一区二区| 午夜影院在线观看欧美| 国产精品旅馆在线| 国产激情视频网站| 国产精品视频一二区| 深夜福利久久| 激情成人中文字幕| 成人免费在线看片| 日韩一级片大全| 免费看国产黄色片| 2019男人天堂| 乡村艳史在线观看| 成人激情av网| 久久久视频在线| 欧美日韩一区二区区别是什么 | 亚洲在线成人| 精品国产一区二区三区av性色| 2021狠狠干| 国产毛片一区二区三区va在线 | 国产suv一区二区三区88区| 日韩中文字幕免费| 亚洲精品久久久中文字幕| 福利视频在线导航| 日日夜夜免费精品| 在线看日韩欧美| 精品久久久久久久无码 | 天天爽夜夜爽人人爽| 亚洲成aⅴ人片久久青草影院| 婷婷激情综合网| 强伦女教师2:伦理在线观看| 国产999久久久| 欧美日韩亚洲一区| 另类专区亚洲| 99精品国产一区二区青青牛奶 | 99免费观看视频| 国产探花在线观看| av亚洲精华国产精华精华| 久久久久久久久久国产| 中文字幕一区二区三区乱码不卡| 国产福利电影在线播放| 久久综合久久99| 国产精品美女主播在线观看纯欲| 欧美不卡视频在线观看| 美女毛片一区二区三区四区最新中文字幕亚洲 | 91香蕉视频网址| h视频在线播放| 韩国v欧美v日本v亚洲v| 欧美黄色www| av直播在线观看| 精品国产黄a∨片高清在线| 亚洲女子a中天字幕| 国产一区二区黄色| 无码人妻丰满熟妇奶水区码| 午夜在线视频一区二区区别| 欧美亚洲另类激情另类| 69xxx免费| 国产一区二区区别| 日韩亚洲欧美成人一区| 波多野结衣家庭教师在线播放| a黄色在线观看| 国产欧美日韩三区| 国产精品露出视频| 五月激情丁香网| 亚洲福利国产| 日韩一级黄色av| 亚洲天堂成人在线| 日韩精品一区二区三区丰满| 91片黄在线观看喷潮| 亚洲精品精选| 久久精品国产久精国产思思| av无码一区二区三区| 你懂的在线观看一区二区| 欧美体内she精视频| a级片一区二区| yjizz视频网站在线播放| 中文字幕精品三区| 精品久久蜜桃| 99热这里只有精品99| 国产精品一卡二| 国产精品老女人视频| 夜夜嗨aⅴ一区二区三区| av不卡免费看| 国产精品成人一区| 强行糟蹋人妻hd中文| 精品产国自在拍| 亚洲国产精品久久91精品| 天堂在线一区二区三区| 成人福利av| 欧美日韩激情一区二区| 韩国中文字幕av| 欧美电影在线观看一区| 欧美日本韩国一区二区三区视频 | 国产精品一区二区三区www| 欧美性猛交99久久久久99按摩| 免费看黄色a级片| 日本精品在线| 亚洲成人自拍网| 成人av在线不卡| 91一区二区三区在线| 中文字幕制服丝袜一区二区三区| 欧洲一区二区在线观看| 免费成人av电影| 91亚洲永久精品| 国产精品乱子乱xxxx| 国产福利片在线| 一区二区视频免费在线观看| 特级黄色录像片| 一个人www视频在线免费观看| 欧美精品三级在线观看| 欧美特黄aaa| 大胆国模一区二区三区| 亚洲精品久久久久中文字幕二区 | 九九热视频这里只有精品| 亚洲天堂一级片| 五月精品视频| 免费不卡在线观看av| 四虎884aa成人精品| 欧美亚洲一区| 国产精品一区二区a| 麻豆视频在线| 亚洲婷婷综合久久一本伊一区 | 白嫩情侣偷拍呻吟刺激| 久久精品不卡| 久久亚洲成人精品| 欧美精品成人久久| 一区视频在线| 91精品久久久久| 精品人妻一区二区三区含羞草| 国产精品综合二区| 亚洲欧美久久234| 免费在线毛片网站| 在线看日本不卡| 在线观看国产福利| 精品国产乱码久久久| 6080yy精品一区二区三区| 五月天婷婷导航| 在线视频婷婷| 亚洲精品aa| 欧美美女一区二区在线观看| 成人免费看aa片| 日韩精品dvd| 乱亲女秽乱长久久久| 中文字幕永久免费视频| 国产精品自在在线| 婷婷视频在线播放| 在线观看欧美| 亚洲精品短视频| 精品在线免费观看视频| 视频一区视频二区在线观看| 91老司机在线| 人人妻人人澡人人爽久久av | 亚洲综合第一页| 午夜成人鲁丝片午夜精品| 亚洲国产精品高清| 午夜视频在线瓜伦| 青青草成人影院| 在线观看色网站| 五月天婷婷丁香| 国产精品15p| 亚洲女人天堂av| 91视频最新网址| 国产日韩欧美一区二区三区在线观看 | 国产精品一区二区久久久久| a级片在线免费看| 亚洲精品国产高清久久伦理二区| 国产伦理在线观看| 亚洲国产日本| 麻豆精品传媒视频| 国产日产一区二区| 日韩欧美在线视频免费观看| 久久无码人妻精品一区二区三区 | 污污网站在线免费观看| 欧美性色19p| 91av手机在线| 懂色av一区二区夜夜嗨| 精品无人区一区二区三区| 超碰在线99| 伊人青青综合网站| 国产熟女一区二区三区四区| 亚洲va韩国va欧美va| 91视频免费观看网站| 国产精品久久| 91午夜在线播放| 丁香花高清在线观看完整版| 亚洲免费中文字幕| 国产一区二区三区黄片| 天天影视网天天综合色在线播放 | 亚洲精品中文字幕乱码三区| 国产精品久久久久久亚洲色 | 中文字幕最新精品| 毛片视频网站在线观看| 国产大片一区二区| 亚洲AV无码成人精品一区| 国内毛片久久| 国产精品一区二区3区| 污污的网站在线看| 91精品国产综合久久精品app | 女同激情久久av久久| 亚洲免费观看| 懂色av粉嫩av蜜臀av| 伊甸园亚洲一区| 国产91aaa| 日本中文字幕视频一区| 欧美中文字幕在线观看| 日韩有码电影| 精品久久久在线观看| 国产小视频你懂的| 2023国产精品自拍| 欧美性猛交xx| 亚洲视频福利| 中文精品视频一区二区在线观看| 国产激情欧美| 日韩一区二区三区在线播放| 欧美性猛交 xxxx| 欧美高清视频在线高清观看mv色露露十八| 四虎成人精品永久免费av| 自拍偷拍欧美激情| 韩国三级丰满少妇高潮| 三级久久三级久久| 久久久免费视频网站| 狠狠做深爱婷婷综合一区| 成人在线观看av| 亚洲色图图片| 国产剧情久久久久久| 亚洲第一会所001| 中文字幕亚洲图片| 欧美高清电影在线| 欧美精品一区二区三区在线| av一级黄色片| 欧美一级片免费看| 一区二区不卡视频在线观看| 欧美丝袜自拍制服另类| 精品一区二区无码| 日韩毛片视频在线看| 国产毛片久久久久久久| 久久亚洲影视婷婷| 国产国语性生话播放| www.性欧美| 亚洲欧美日韩偷拍| 成人黄色777网| 性色av蜜臀av浪潮av老女人| 国产.欧美.日韩| 黄色片子免费看| 国产精品日韩精品欧美精品| 成人在线国产视频| 成人91在线| 色噜噜一区二区| 一本一道久久a久久| 欧美做受高潮电影o| 日韩脚交footjobhdboots| 日韩一级黄色av| 秋霞午夜在线观看| 久久久av一区| 在线观看男女av免费网址| 欧美男插女视频| jizzjizz中国精品麻豆| 性欧美亚洲xxxx乳在线观看| 日本在线观看网站| 日韩在线观看av| 污污视频在线看| 69国产精品成人在线播放| 中文不卡1区2区3区| 国产精品久久久久7777婷婷| 少妇高潮一区二区三区99| 亚洲精品欧美极品| 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 成人性生交大片免费看无遮挡aⅴ| 国产精品国产自产拍在线| 成人观看免费视频| 欧美日韩国产区| 破处女黄色一级片| 亚洲成人综合视频| 日韩国产成人在线| 制服丝袜日韩国产| 这里只有精品国产| 91精品国产入口| 天天综合永久入口| 欧美一级日韩一级| 四虎永久在线精品免费网址| 一本色道久久88综合亚洲精品ⅰ | 韩日一区二区三区| 天堂av免费看| 国产亚洲精品自拍| 亚洲精品午夜在线观看| 成人午夜激情在线| 大胸美女被爆操| 午夜久久久久久久久久一区二区| 69视频免费看| 精品免费一区二区三区| 国产伦精品一区二区三区免.费| 日韩片之四级片| 国产一级在线观看| 亚洲人成网7777777国产| 免费a级人成a大片在线观看| 亚洲 日韩 国产第一| 欧美一区=区三区| 裸模一区二区三区免费| 亚洲九九视频| 中文字幕人成一区| 在线亚洲激情| 少妇愉情理伦片bd| 国产日韩欧美a| 亚洲а∨天堂久久精品2021| 91在线一区二区三区| 最新黄色av网址| 色婷婷综合久久久中文字幕| 欧美一区二区三区网站| 日韩欧美国产系列| 亚洲老妇色熟女老太| 日韩欧美的一区二区| av资源网在线观看| 羞羞色国产精品| 日韩精品一区二区三区中文| 亚洲一区二区三区在线免费观看| 亚洲精品一级二级三级| 777久久精品一区二区三区无码 | 色www精品视频在线观看| 五月婷婷色丁香| 日本黄色一区二区| 蜜桃av噜噜一区二区三区麻豆| 欧美成人免费网站| 在线免费观看的av网站| 人人爽久久涩噜噜噜网站| av日韩精品| 久久久久久一区| 欧洲激情视频| 欧美日韩在线中文| 日韩av不卡在线观看| 中文字幕第22页| 成人精品视频一区| 成人观看免费视频| 欧美一区二区成人| 精精国产xxxx视频在线| 国产精品一区久久| 成人91在线| 潘金莲激情呻吟欲求不满视频| 国产日韩欧美高清| 日韩欧美国产另类| 一区二区三区动漫| 日本中文字幕一区二区| 91九色在线免费视频| 四虎5151久久欧美毛片| 亚洲午夜精品久久久中文影院av | 国产精品无遮挡| 无码久久精品国产亚洲av影片| 亚洲区免费影片| 欧美va在线观看| 亚洲一区二区三区乱码| 久国产精品韩国三级视频| 亚洲啪av永久无码精品放毛片| 一区二区在线观看视频在线观看| 国产高清免费在线观看| 欧美激情精品久久久久久| 日韩精品久久久久久久软件91| 国产青草视频在线观看| va亚洲va日韩不卡在线观看| 成人毛片18女人毛片| 亚洲男人天堂网| www.一区| 日本xxxxx18| 99久久伊人久久99| 免费看毛片网站| 色诱女教师一区二区三区| 国产精品日本一区二区不卡视频| 国产91沈先生在线播放| 99久久免费国产| 最近中文字幕免费观看| 久久资源免费视频| 精品国产18久久久久久洗澡| 欧美一级片中文字幕| 丁香婷婷综合网| 午夜婷婷在线观看| 日韩在线一区二区三区免费视频| 一区二区三区四区精品视频| 18岁网站在线观看| 国产精品久久久久久久岛一牛影视| av免费在线观看不卡| 国产91av在线| 91欧美日韩| 性欧美丰满熟妇xxxx性久久久| 欧美亚洲自拍偷拍| 动漫一区二区| 日韩三级电影| 成人午夜激情视频| 一道本在线视频| 66m—66摸成人免费视频| 91欧美日韩| 在线免费观看日韩av| 91精品国产一区二区三区蜜臀 | 成年人在线免费观看| 成人欧美一区二区三区视频xxx| 日韩精品福利网| 校园春色 亚洲| 亚洲夜晚福利在线观看| 成人免费无遮挡| 日本一级淫片演员| 久久精品男人的天堂|