CGI란?
- 웹 서버와 외부 프로그램 사이의 표준 인터페이스
- 초기에 사용자에게 동적 웹 페이지를 보여주기 위한 방식을 표준화 함
- 예시>
- 브라우저에서 보낸 요청을 웹 서버가 CGI 인터페이스를 통해 CGI 프로그램에 전달
- CGI 프로그램은 DB와 통신하여 동적인 페이지 생성
- 생성한 동적 페이지 웹 서버를 통해 브라우저에 전달
FAST-CGI란?
- CGI의 확장된 버전으로 기존 CGI 프로토콜의 단점을 개선하기 위해 나온 것
- CGI의 단점: 요청할 때마다 프로세스 생성하여 서버에 부하
- FAST-CGI는 요청마다 프로세스 생성하지 않고 1개의 큰 프로세스를 생성해서 여러 요청 처리
- Nginx, Apache 등에서도 FAST-CGI 기능을 제공하고 있음
Reverse Proxy 란?
- 클라이언트와 서버 사이에 위치하는 중간 서버 역할을 하는 네트워크 기기 또는 서비스
- 위치: 인터넷과 서버 사이
- 네트워크 기기/서비스 예시
- Nginx(Reverse proxy 기능)
- Apache HTTP Server(Reverse proxy 기능)
- HAProxy: 소프트웨어 로드 밸런서
- 기능 예시
- 웹서버 IP 노출시키지 않고 Proxy 서버 IP만 노출 가능
- 로드밸런싱
- SSL Offloading: SSL 처리(SSL 암복호화 등)를 서버가 아닌 다른 네트워크 장비가 처리하는 것을 의미
cf) Foward Proxy란
- 클라이언트와 인터넷 사이 위치
- 내부망에서 외부망으로 나가기 전 Foward proxy를 거치게 됨
- 기능 예시
- 기업 환경에서 회사 직원들이 업무와 관련 없는 웹 사이트 접속하는 것을 방지 또는 모니터링 가능
mod_jk란
- 아파치 HTTP 서버(Apache HTTP Server)와 톰캣(Tomcat)과 같은 자바 컨테이너 사이의 연결을 도와주는 플러그인
- AJP(Apache JServ Protocol)을 사용하여 아파치 서버와 톰캣 간에 통신(HTTP 프로토콜보다 가볍고 효율적인 바이너리 기반 프로토콜)
- 기능 예시
- 로드밸런싱
- 장애복구(서버 장애시 다른 서버로 자동 전환 가능)
참고: https://en.wikipedia.org/wiki/Common_Gateway_Interface
https://lee-jua.github.io/posts/CGI-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EB%A7%9B%EB%B3%B4%EA%B8%B0/
https://server-talk.tistory.com/308
https://en.wikipedia.org/wiki/Reverse_proxy
'끝나지 않는 개발스터디' 카테고리의 다른 글
압축(손실압축, 비손실 압축) (0) | 2024.02.25 |
---|---|
Fork 포크 (0) | 2024.02.22 |
socket study-3 (0) | 2024.02.17 |
socket study-2 (0) | 2024.02.14 |
Socket server/client 과제 1 (0) | 2024.02.11 |
댓글