1. Introduction to Nginx
1. Proxy
1) Proxy란
- Proxy란 '대리'라는 의미로, 네트워크 기술에서는 프로토콜에 있어서 대리 응답 등에서 친숙한 개념이다.
- 보안 분야에서는 보안상의 이유로 직접 통신할 수 없는 두 점 사이에서 통신할 경우 중계기로서 대리로 통신을 수행하는 기능을 말한다.
2) Forward Proxy
- 기업 내부망 PC 또는 서버들이 인터넷에 접속할 때, 먼저 Proxy 서버를 거쳐서 인터넷에 연결되는 방식이다.
- Forward Proxy의 장점은 다음과 같다.
1] 보안
- Proxy 서버에서 In/Out bound 패킷에 대한 보안 정책을 적용할 수 있다.
2] 성능
- Proxy 서버는 내부에 Cache를 유지하며, 이미 한 번 통신한 외부 서버의 이미지, 파일, 그 외의 정보들을 저장할 수 있다.
- 내부 사용자가 원격 서버에 접속 시, Cache에 데이터가 있으면 물리적으로 먼 곳까지 갈 필요없이 Proxy 서버가 데이터를 제공하여 빠른 통신을 지원한다.
3) Reverse Proxy
- 외부에서 내부 서버가 제공하는 서비스 접근 시, Proxy 서버를 먼저 거쳐서 내부 서버로 들어오는 방식이다.
- Reverse Proxy의 장점은 다음과 같다.
1] 보안
- 외부 사용자는 실제 내부망에 있는 서버의 존재를 모른다.
- 모든 접속은 Reverse Proxy 서버에게 들어오며, Reverse Proxy는 요청에 매핑되는 내부 서버의 정보를 알고 요청을 넘겨 준다.
2] 로드 밸런싱
- Proxy 서버가 내부 서버의 정보를 알고 있으므로 로드 밸런싱을 통해 부하 여부에 따라 요청을 분배할 수 있다.
2. Nginx
1) Nginx란
- 동시 접속 처리에 특화된 웹 서버 프로그램이다.
- Nginx는 Event-Driven 방식으로 요청을 처리해 준다.
2) Nginx의 역할
- 클라이언트의 요청 처리를 분산시킬 수 있는 로드 밸런스를 사용함으로써 효율적인 처리가 가능하다.
- 정적 파일을 다이렉트로 제공해 주기 때문에 백엔드 서버에 부담을 주지 않는다.
- 클라이언트는 Nginx 포트로만 백엔드 서버에 접근할 수 있어 보안에 도움이 된다.