SpringBoot 实现反向代理
背景:在前后端分离的项目中,有一天后端项目因为某些原因不能暴露在公网地址,此时为了修改最少,利用反向代理技术进行实现。 这种不是解决方案,曲线救国。
1. 引入依赖
<dependency> <groupId>org.mitre.dsmiley.httpproxy</groupId> <artifactId>smiley-http-proxy-servlet</artifactId> <version>1.12</version> </dependency>
2. 配置文件
proxy: baidu: url: /baidu/* target_url: https://baidu.com
3. 配置代理
package athena.gateway.app.banshi; 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; @Configuration public class SolrProxyServletConfiguration { @Value("${proxy.baidu.url}") private String url; @Value("${proxy.baidu.target_url}") private String targetUrl; @Bean public ServletRegistrationBean servletRegistrationBean() { ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new ProxyServlet(), url); servletRegistrationBean.setName("百度"); servletRegistrationBean.addInitParameter("targetUri", targetUrl); servletRegistrationBean.addInitParameter(ProxyServlet.P_LOG, String.valueOf(true)); return servletRegistrationBean; } }
上一篇:
IDEA上Java项目控制台中文乱码