리눅스 웹서버

리눅스는 안정성과 보안성이 뛰어나며, 무료로 사용이 가능하다는 장점이 있기 때문에 웹 서비스에 많이 사용됩니다.

리눅스 웹서비스 활용

리눅스는 Apache, Nginx와 같은 웹 서버 소프트웨어와 함께 사용할 때 높은 성능과 안정성을 제공하며, 웹 어플리케이션 개발 및 배포에 용이하다는 이점도 있습니다. 또한, 리눅스는 커뮤니티와 개발자들이 지속적으로 업데이트 및 유지보수를 진행하고 있기 때문에, 웹 서비스에서 안정적으로 사용할 수 있습니다.

Web Server의 역할

웹 서버는 클라이언트(웹 브라우저)의 요청에 응답하여 웹 페이지나 파일 등을 전송해주는 역할을 합니다. 즉, 웹 서버는 인터넷을 통해 접근 가능한 서버로서, 웹 사이트나 웹 애플리케이션 등을 호스팅하여 이용자들이 이용할 수 있도록 합니다.

또한, 웹 서버는 보안, 로깅, 프로토콜 변환 등 다양한 기능을 제공하여 웹 서비스를 운영하는 데 필요한 기술적인 지원을 제공합니다.

Static resource

웹 서버의 Static resource란, 동적으로 생성되지 않는 정적인 자원으로서, HTML, CSS, JavaScript, 이미지, 동영상 등과 같은 파일들을 말합니다. 이러한 Static resource는 웹 서버에서 미리 저장되어 있으며, 클라이언트의 요청에 따라 전송되어 웹 페이지를 구성합니다. Static resource는 일반적으로 변경되지 않는 경우가 많기 때문에, 캐싱 등의 기술을 적용하여 빠르게 전송되도록 합니다. 이를 통해 웹 페이지의 로딩 속도를 개선할 수 있습니다.

  • Web server에서 static resource를 다루고, WAS 서버에서 dynamic 정보를 다룬다.
    • DB까지 가지 않는 정보 전달. 그림파일, text 등

Security

웹 서버의 보완은 해킹, 디도스 공격, 스팸 등의 악성 공격으로부터 웹 서버를 보호하는 것을 말합니다. 보안 취약점을 이용하여 해커가 웹 서버에 악성 코드를 삽입하거나, 서비스 거부 공격 등으로 웹 서버를 마비시킬 수 있기 때문에, 웹 서버의 보안을 강화하는 것이 매우 중요합니다.

웹 서버의 보완을 위해서는 다음과 같은 조치가 필요합니다.

​* 방화벽 바깥에 webserver를 위치하고 WAS, DB서버는 방화벽 안쪽에 위치

  • 정기적인 보안 업데이트: 웹 서버 소프트웨어, 운영체제, 보안 프로그램 등을 최신 버전으로 업데이트하여 보안 취약점을 막아야 합니다.

  • 웹 방화벽 설정: 웹 서버 앞단에 웹 방화벽을 설치하여 악성 트래픽을 차단하고, 웹 어플리케이션의 취약점을 탐지하여 대응해야 합니다.

  • SSL 인증서 적용: SSL 인증서를 적용하여 암호화된 통신을 지원하여 보안을 강화해야 합니다.

  • 사용자 인증 및 권한 관리: 사용자 인증 및 권한 관리를 통해 불법적인 접근을 차단하고, 권한 없는 사용자의 파일 다운로드 및 업로드 등을 방지해야 합니다.

  • 로그 분석: 웹 서버의 로그를 분석하여 악성 공격에 대한 대처 방안을 마련해야 합니다.

  • 보안 정책 수립: 기업의 보안 정책을 수립하고, 보안 전문가와 협력하여 웹 서버의 보안을 강화해야 합니다.

Load balancing

웹서버 로드밸런서(Load Balancer)는 여러 대의 웹 서버를 이용하여 부하 분산 및 고가용성을 제공하는 서비스입니다. 대규모 트래픽이 발생하는 웹 사이트의 경우, 단일 서버로는 대응하기 어려워 여러 대의 웹 서버를 운용하고, 이를 효율적으로 분산시키는 기술입니다.

웹 서버 로드 밸런서는 클라이언트의 요청을 여러 대의 웹 서버로 분산하여 처리하므로, 각 서버에 걸리는 부하를 분산시키고, 트래픽이 집중되는 경우에도 안정적으로 서비스를 제공할 수 있습니다. 또한, 웹 서버의 장애나 다운 시, 로드 밸런서는 자동으로 해당 서버의 요청을 다른 서버로 재분배하여 고가용성을 제공합니다.

웹서버 로드 밸런서는 라운드 로빈, 최소 연결, 최소 부하, IP 해시 등의 알고리즘을 이용하여 부하를 분산시키며, 하드웨어 기반 또는 소프트웨어 기반으로 구현될 수 있습니다. 대표적으로 AWS ELB, NGINX, HAProxy 등이 있습니다.

  • 하나의 Webserver가 여러 개의 WAS 서버에게 업무 분배

Web server의 장점

  • Static resource 처리를 빨리 해주고,

  • WAS 서버의 주소 노출이 안되어 보안이 강화되고 (port번호를 숨길수 있음)

  • 여러 개의 WAS의 업무 분배해 주어 자원을 효율적으로 활용

  • 글로벌 접근성: 인터넷에 접속한 모든 사용자들이 웹 서버에 접근할 수 있으므로, 전 세계 어디에서든지 웹 서버에 접근이 가능합니다.

  • 다양한 콘텐츠 제공: 웹 서버는 정적 콘텐츠부터 동적 콘텐츠까지 다양한 형태의 콘텐츠를 제공할 수 있습니다. 이를 통해 웹 서비스 제공자는 다양한 형태의 콘텐츠를 제공하고, 이를 이용하는 사용자들도 원하는 형태의 콘텐츠를 쉽게 이용할 수 있습니다.

  • 쉬운 업데이트 및 유지보수: 웹 서버에서 제공하는 콘텐츠는 대부분 파일 형태로 저장되어 있기 때문에, 콘텐츠를 업데이트하거나 유지보수할 때 비교적 쉽게 처리할 수 있습니다.

  • 저비용 운영: 웹 서버는 대체로 저비용으로 운영할 수 있습니다. 웹 서버를 이용하면 데이터를 인터넷을 통해 제공할 수 있으므로, 서버의 위치와 상관없이 저비용으로 운영할 수 있습니다.

  • 빠른 전송 속도: 웹 서버는 대부분 고속 인터넷에 연결되어 있으므로, 사용자들이 콘텐츠를 빠르게 받을 수 있습니다. 또한, 웹 서버는 캐시를 이용하여 콘텐츠 전송 속도를 높일 수도 있습니다.

웹 서버의 종류

리눅스에서 사용되는 대표적인 웹 서버 소프트웨어로는 Apache, Nginx, Lighttpd 등이 있습니다. 이 중 Apache와 Nginx가 가장 많이 사용됩니다.

  • 아파치
    아파치 웹서버를 설치합니다.

  • 엔진엑스
    nginx는 고성능의 웹 서버 소프트웨어로, 가벼우면서도 안정적인 성능과 높은 확장성을 제공합니다. 대규모 웹 사이트나 애플리케이션에서 사용되며, 프록시 서버, 로드 밸런서, 캐시 서버 등의 역할을 수행할 수 있습니다.

  • 그외 웹서버

    • IIS
서브목차