그래서 등장한 것이 CGI
해당 웹서버에 연결되어있는 DB서버
웹서버 : 엔진엑스
언어 : 자바
커뮤니케이션 -> CGI
CGI가 웹서버와 어플리케이션간에 공통된 방식으로 커뮤니케이션이 가능하게 해준다
그래서 엔진엑스 + 여러 언어 가능
보통 웹서버 nginx + php + mysql의 조합으로 사용하는데
그 이유는 php에 있는 기능 때문이다.
예로, 업로드 속도 향상 인코딩시 사용자가 기다리지 않아도 되는 부분 등
mysql 서버와 클라이언트 다운받기
엔진엑스에서 피에이치피 구동할 수 있도록
엔진엑스 해당 포트 서버에서 php가 대기하고 있다
엔진엑스에 php , mysql 연결
: 서로 독립된 머신 설치 다른 서버에 설치
엔진엑스와 php를 서로 다른 머신에 설치하는 이유
TCP 커넥션을 통해 독립적인 웹서버 구축 가능
이때 독립적으로 설치할 경우
클라이언트가 nginx에 요청을하면 nginx에 연결되어 있는 어플리케이션에 요청을하고 응답을 받는다
이렇게 분리되어있는것을 애플리케이션 구도라고 한다
더 많은 부하를 견딜 수 있음
즉, 웹서버는 비교적 낮은 사양을 사용하고 데이터베이스나 다른 어플리케이션의 경우에는 고사양을 사용하는 등이 가능
php와 mysql만이 동작하기 위한 서버
mysql도 분리된 서버로 관리하고 싶다면 php의 동일 머신에 설치할 필요는 없다