nginx는 웹 서버 프로그램 중 하나로써 러시아의 프로그래머,이고르 시쇼브가 Apache의 C10K Problem을 해결하기 위해 만들었습니다.
동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있죠.
주로 HTTP server, Reverse proxy의 역할을 합니다.
Nginx의 첫 번째 역할은 정적 파일을 웹 브라우저로 전송하는 HTTP서버로서의 역할 입니다.
정적 콘텐츠, 동적 콘텐츠는 무엇일까요??
정적 콘텐츠
정적 콘텐츠는 모든 사용자에게 동일하게 보여지는 카테고리나 배너같이 요청을 받으면 단순히 응답만 해 주면 되는 HTML, CSS, JS, 이미지와 같은 정적파일들을 이용하는 것을 정적 콘텐츠라고 말합니다.
동적 콘텐츠
동적 콘텐츠는 사용자에 따라서 다르게 보여지는 것을 말합니다. 간단하게 예를 들면 마이페이지, 장바구니, 맞춤 정보 등이 있을 것 같습니다.
Nginx의 두 번째 역할은 응용프로그램 서버에 요청을 보내는 리버스 프록시로서의 역할입니다.
이 리버스 프록시는 클라이언트가 서버에 요청한 정보를 받아서 서버에 넘겨주거나, 서버에서 받은 정보를 다시 클라이언트한테 넘겨주는 전달자의 역할을 합니다.
클라이언트가 요청한 정보를 서버에 바로 전달해도 되는데 이렇게 하는 이유중 하나는 보안때문입니다.
보통 WAS는 DB 서버와 연결되어있다보니 WAS가 최전방에 있다면 WAS가 문제가 발생할 시 DB서버또한 위험해지기 때문에 실제 서버는 내부망에 위치해 두고 프록시 서버와의 통신을 통해서 서비스를 하게 됩니다.
참고
나는 nginx 설정이 정말 싫다구요
Nginx 이해하기 및 기본 환경설정 세팅하기
[개발자 면접준비]#2. nginx의 이해와 활용
Nginx란 무엇인가?
NGINX 1 - NGINX란?
Nginx와 Apache