Proxy는 번역하면 대리라는 의미를 가진다. Proxy 서버는 클라이언트와 서버 사이에서 클라이언트 또는 서버를 대신해서 기능을 수행하거나 중계하는 역할을 한다.
리버스 프록시는 클라이언트로부터 오는 요청을 서버 대신 처리하거나 중계하는 역할을 한다.
포워드 프록시는 클라이언트가 직접 웹에 연결하는게 아니라 포워드 프록시가 요청을 받아 대신 연결하고 응답을 클라이언트에게 전달해주는 역할을 한다.
nginx.conf
의 구성을 변경하여 nginx를 리버스 프록시로 동작시켜 보자
location
Block Directive 내부에 proxy_pass
라는 directive를 구성하여 리버스 프록시로 설정할 수 있다. WAS에서는 프록시의 존재를 몰라도 되기 때문에 Apace
와 Tomcat
을 AJP
로 연결하던 것에 비하면 간단하게 설정이 된다.
http {
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8080/;
}
}
}
proxy_pass http://localhost:8080/
: 실제로 구동중인 WAS에 요청할 URL을 입력간단하게 Spring으로 API를 만들고 테스트해보자. Spring Boot로 Spring Web 의존성만 추가해서 프로젝트를 만든다. 이후 아래와 같이 컨트롤러를 생성한다.
@RestController
public class HelloController {
@Value("${server.port}")
private int port;
@GetMapping("/greet")
public String greeting(){
return "Hello, My Port is " + port;
}
}
WAS를 동작시키고 curl로 테스트를 해보자.
위와 같이 응답이 제대로 나온다면 nginx와 연동해서 테스트해보자.
nginx를 이용해서 테스트를 완료 했다. proxy_pass 외에도 헤더 추가나, 버퍼 등 설정을 할 수 있으니 공식 문서를 참고바란다.