Web Server
🔶 웹서버의 개념
-
소프트웨어 측면: 웹서버는 HTTP와 같은 프로토콜을 통해 넘어온 클라이언트의 요청에 HTML과 같은 웹 페이지로 응답하는 소프트웨어
ex) nginx, apache
→ 이 소프트웨어들은 호스팅하고 있는 서버에서 웹페이지의 컴포넌트 파일들(정적 파일 등)에 어떻게 접근하는지를 관리
-
하드웨어 측면: nginx나 apache와 같은 소프트웨어가 실제로 동작하고, 웹페이지의 데이터를 실제로 저장하는 서버를 의미, 웹 서버는 인터넷에 연결되어 IP주소로 식별되고, 이 주소를 통해 클라이언트와 연결된다.
🔶 리눅스 웹서버
리눅스는 안정성과 보안성이 뛰어나며, 무료
로 사용이 가능하다는 장점이 있기 때문에 웹 서비스에 많이 사용
리눅스에서 사용되는 대표적인 웹 서버 소프트웨어로는 Apache, Nginx
🟡 Apache
아파치는 월드와이드 웹 서버용 소프트웨어 (HTTP 아파치 서버, HTTP 웹 서버)
아파치는 다양한 기능을 제공
예를 들어, 가상 호스팅(Virtual Hosting) 기능을 지원하여, 한 대의 서버에서 여러 도메인을 호스팅할 수 있음
또한, 암호화 통신(SSL)을 지원하여, 웹 사이트의 보안을 강화 가능
모듈 기능을 활용하여, 웹 서버의 기능을 확장할 수 있습니다. 예를 들어, 모듈을 추가하여 PHP, Python, Ruby 등의 스크립트 언어를 지원 가능
아파치는 오픈 소스이기 때문에, 누구나 소스 코드를 다운로드하여 수정하고 개선할 수 있다. 이러한 개방성과 유연성으로 인해, 아파치는 전 세계적으로 널리 사용되는 웹 서버 중 하나
🟡 Tomcat
톰캣은 아파치 소프트웨어 재단의 어플리케이션 서버로서 , 자바 서블릿을 실시키고 jsp코드가 포함되어 있는 웹페이지를 만들어준다
톰캣은 web_server에서 넘어온 동적인(서버가 데이터를 처리후생성) 페이지를 읽어들여 프로그래밍을 실행하고 그 결과를 다시 html으로 재구성하여 아파치에게 되돌려 준다. 톰켓은 자체적으로 보유하고 있는 내부 웹 서버와 함께 독립적으로 사용될 수도 있지만 아파치나 넷스케이프 엔터프라이지 서버, IIS등 다른 WEB_server와 함께 사용이 가능하고 , 톰켓을 실행시키기 위해서는 JRE1.1이상에 부합된 자바 RUN_TIME의 환경을 필요로
🟡 nginx
엔진엑스(nginx)는 다양한 운영 체제에서 동작하는 오픈 소스 웹 서버 소프트웨어
아파치와 마찬가지로 HTTP 서버로서 웹 서비스를 제공할 수 있으며, 프록시 서버, 로드 밸런서, 캐시 서버 등의 기능도 제공
엔진엑스는 아파치와 비교하여 더 높은 성능과 안정성을 제공하는데 이는 다음과 같은 특징 때문
- 엔진엑스는 비동기 이벤트 기반 아키텍처를 사용합니다. 이는 쓰레드나 프로세스를 생성하지 않고도 많은 수의 연결을 처리할 수 있어서, 높은 동시 접속 처리 능력을 가집니다.
- 엔진엑스는 고성능 캐싱 기능을 가지고 있습니다. 이는 정적인 콘텐츠를 캐시하여 빠르게 제공할 수 있어서, 동적인 콘텐츠를 처리하는데에도 높은 성능을 발휘합니다.
- 엔진엑스는 모듈 기능을 활용하여 다양한 기능을 확장할 수 있습니다. 이러한 모듈은 다양한 프로토콜(WebSocket, RTMP 등)을 지원하거나, 보안 기능을 제공하기도 합니다.
- 엔진엑스는 아파치와 마찬가지로 오픈 소스이기 때문에, 누구나 소스 코드를 다운로드하여 수정하고 개선할 수 있습니다.
따라서, 엔진엑스는 높은 성능과 안정성을 요구하는 대규모 웹 서비스에서 널리 사용되는 웹 서버 소프트웨어 중 하나