springboot实现反向代理

第一步:相关依赖

org.mitre.dsmiley.httpproxy

smiley-http-proxy-servlet

1.7

com.google.guava

guava

18.0

 

 

第二步:配置文件

 

# 代理的本地路由规则

proxy.servlet_url: /api/*

# 要代理的地址

proxt.target_url: http://www.baidu.com

 

 

第三步:

 

package com.mindant.rest.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;

/**
 * @ClassName: SolrProxyServletConfiguration
 * @Description: 反向代理
 * @author: KingKong
 * @date: 2020年03月24日 12:11
 */
@Configuration
public class SolrProxyServletConfiguration {
    /**
     * 读取配置文件中路由设置
     */
    @Value("${proxy.servlet_url}")
    private String servletUrl;
    /**
     * 读取配置中代理目标地址
     */
    @Value("${proxy.target_url}")
    private String targetUrl;

    @Bean
    public Servlet createProxyServlet(){
        // 创建新的ProxyServlet
        return new ProxyServlet();
    }

    @Bean
    public ServletRegistrationBean proxyServletRegistration(){
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(createProxyServlet(), servletUrl);
        //设置网址以及参数
        Map params = ImmutableMap.of(
                "targetUri", targetUrl,
                "log", "true");
        registrationBean.setInitParameters(params);
        return registrationBean;
    }
}

 

你可能感兴趣的:(springCloud,springboot,反向代理)