First of all, I set the eureka server that use port as 8761,
and set the client server that process the request actually and use port as 8080.
And the I set the proxy server that use port as 8880.
By using eureka, the proxy server can know the client server's ip and port automatically.
- Structure
- build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'spring-boot'
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web:1.4.0.RELEASE')
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-zuul', version: '1.1.5.RELEASE'
compile group: 'org.projectlombok', name: 'lombok', version: '1.16.10'
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-eureka', version: '1.1.5.RELEASE'
}
- application.yml
spring:
application:
name: proxy-server
server:
port: 8880
zuul:
routes:
client-server:
path: /client/**
- SimpleFilter.java
package org.blog.test.proxy;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class SimpleFilter extends ZuulFilter {
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 0;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
ctx.addZuulRequestHeader("zuul-proxy-header", "zuul-header-value");
return null;
}
}
- ProxyApplication.java
package org.blog.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@SpringBootApplication
@EnableZuulProxy
@EnableEurekaClient
public class ProxyApplication {
public static void main(String[] args) {
SpringApplication.run(ProxyApplication.class, args);
}
}
- result
Proxy server add the header as zuul-proxy-header when requesting step,
and routing the request to the client server.


댓글 없음 :
댓글 쓰기