외부 Api 통신 시, WebClient로 통신을 진행하고 있다.
그러던 중, 서버 도메인의 IP가 동적으로 바뀌는 곳이 발생하였다.
현재 AWS 방화벽 정책에서 IP로밖에 제한할 수 없다고 하여 방화벽 세팅을 위해서Proxy서버를 추가로 세팅하였다.
@Bean
public WebClient webClient(@Value("${url}") String url) {
HttpClient httpClient = HttpClient.create();
return WebClient.builder()
.baseUrl(url)
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
}
Client -> url 형태로 api를 요청하고 있다.url 전송 전에 proxy서버를 거쳐야 한다.
@Value("${proxyUrl}")
private String proxyUrl;
@Value("${proxyPort}")
private String proxyPort;
@Bean
public WebClient webClient(@Value("${url}") String url) {
HttpClient httpClient = HttpClient.create()
.proxy(item -> item.type(Proxy.HTTP)
.host(proxyUrl)
.port(proxyPort));
return WebClient.builder()
.baseUrl(url)
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
}
proxyUrl:proxyPort 로 요청하게끔 처리하였다. (Client -> Proxy -> url)