SpringBoot 实现反向代理

    技术2022-07-10  137

    1. 引入相关依赖

    <dependency> <groupId>org.mitre.dsmiley.httpproxy</groupId> <artifactId>smiley-http-proxy-servlet</artifactId> <version>1.7</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> </dependency>

    2. 配置相关代理设置

    # 自定义代理相关配置 # 代理的本地路由 proxy.servlet_url: /api/* # 要代理的地址 proxt.target_url: http://www.baidu.com

    3. 声明proxy的servlet,并对其进行配置即可:

    package top.jetlee.wx.Config; import com.google.common.collect.ImmutableMap; import org.mitre.dsmiley.httpproxy.ProxyServlet; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.servlet.Servlet; import java.util.Map; /** * @Description: 实现代理配置 * @Parameters: * @Return: * @CreateDate: 2019/7/19 9:52 * @Version: V1.00 * @Author: jetlee */ @Configuration public class SolrProxyServletConfiguration { // 读取配置文件中路由设置 @Value("${proxy.servlet_url}") private String servlet_url; // 读取配置中代理目标地址 @Value("${proxt.target_url}") private String target_url; @Bean public Servlet createProxyServlet(){ // 创建新的ProxyServlet return new ProxyServlet(); } @Bean public ServletRegistrationBean proxyServletRegistration(){ ServletRegistrationBean registrationBean = new ServletRegistrationBean(createProxyServlet(), servlet_url); //设置网址以及参数 Map<String, String> params = ImmutableMap.of( "targetUri", target_url, "log", "true"); registrationBean.setInitParameters(params); return registrationBean; } }

    3.测试效果

    访问本地请求,可以看到已经代理到我们的目标地址了

     

     

     

    Processed: 0.009, SQL: 9