즉, 사용자가 직접 백엔드 서버와 소통하지 않고, 중간에 Nginx 같은 서버가 요청을 대신 받아서 백엔드 서버로 전달한 뒤, 응답을 다시 사용자에게 보내주는 역할이다.
일반적인 클라이언트-서버 모델은

클라이언트(브라우저) -> 백엔드 서버 -> 응답 반환
http://backend.com)에 요청을 보낸다.리버스 프록시를 사용하는 경우

클라이언트(브라우저) -> 리버스 프록시(Nginx) -> 백엔드 서버 -> 리버스 프록시 -> 응답 반환
리버스 프록시는 단순한 요청 중계 역할 뿐 아니라 아래와 같은 장점을 제공한다.
[1] 보안 강화
[2] 로드 밸런싱 (부하 분산)
[3] 속도 최적화
[4] 서버 유지보수 및 확장 용이

클라이언트가 http://example.com 으로 요청하면,
백엔드 서버(8000번 포트)로 요청을 전달하는 예제를 살펴보자.
sever {
listen 80;
location / {
proxy_pass http://backend_server:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
(1) 사용자가 http://example.com으로 요청을 보내면
(2) Ngnix가 해당 요청을 받아서 백엔드 서버(backend_server:8000)로 전달.
3. 백엔드 서버에서 응답을 반환하면, 다시 클라이언트에게 응답 전달
-> 클라이언트는 백엔드 서버의 IP를 몰라도 되고, 항상 Nginx(리버스 프록시)만 호출하면 된다.
즉, 리버스 프록시는 보안, 속도, 부하 분산, 유지보수 등 여러 가지 장점이 있어서 서버 운영에 필수적으로 사용된다.