WEB Server NGINX 알아보기




    이번 포스팅에서는 Nginx에 대해서 알아보도록 하겠습니다




     

     Apache 운영에 대한 한계점


     





    Nginx는 차세대 웹서버로 부릅니다 아직까지도 Apache라는 웹서버가 독점적인 주를 누리고 있으나, Apache는 아주 오래전에 개발된 소프트웨어이기 때문에 오래전에 요구했던 인터넷 초창기에서 필요했던 여러 가지 시대 사항들을 반영해서 만들어진 소프트웨어 입니다


    그렇다 보니 여러 가지 난개발의 흔적도 있고, 더 이상 필요하지 않는 기능도 있습니다 그러나 Apache에서는 그러한 기능들을 쓰고 있기 때문에 제거하기는 쉽지 않습니다


    즉 여러 가지 기능을 다 들고 있기 때문에 필연적으로 무겁고 느릴 수밖에 없는 측면이 있습니다 그러한 이점을 파고든 웹서버라고 볼 수 있습니다




    Nginx를 짧게 정의한다면 더 적은 자원으로 더 빠르게 데이터를 서비스할 수 있는 경향화된 웹서버이고 핵심은 빠르다입니다






     

     NGINX 는 무엇인가?




    Nginx 는 2002년에 러시아에서 방문자 수가 높은 웹 사이트 사용을 위해 만든 서버 프로그램 입니다 Nginx 는 여러 기능도 많고 엔지니어들 사이에 가볍다고 빠르다는 것을 입증되었고, 웹 사이트 방문자로 Apache의 한계를 느꼈다면 고려 할만 합니다


    Nginx는 비동기 소켓 사용으로 받은 요청 수만큼 자식 프로세스를 생성하지 않고, 1코어당 한 프로세스만으로도 수천 개의 연결을 처리하는데 충분하여 CPU 부하와 메모리 사용량이 적습니다


    그리고 Apache와는 다르게 설정 파일을 조작이 간편하며 속도, 효율성, 강력한 기능을 또한 오픈소스로 무료여서 Apache의 마이그레이션 하는 추세입니다






     

     NGINX 특징



    1) Event-Driven(비동기 방식) 방식



    위 그림은 Apache의 처리 방식입니다 Apahce는 쓰레드당 처리방식으로 접속자가 많으면 쓰레드를 생성하여 메모리 및 CPU 사용량 증가하여 성능이 떨어질 수도 있습니다.



    위 그림은 Nginx 처리 방식입니다 Apache는 쓰레드 기반으로 1개의 커넥션에서 1개의 쓰레드의 자원을 생성하지만 Nginx 비동기 방식으로 먼저 처리해야 되는 것 부터 진행합니다.



    2) SSL 지원 및 SNI 기능 지원



    예전 웹서버 같은경우 1개의 IP에는 1개의 도메인의 SSL 인증서만 적용해야 되었으며, 1개의 IP에 여러개의 도메인의 인증서로 적용하려면  몇배로 더 비싼 멀티인증서로 적용해야 되었습니다

    이러한 부분을 해결하기 위한 기능이 SNI 기능이며, Nginx에서는 SNI 기능은 지원합니다



    3) FastCGI / Uwsgi / SCGI 지원



    Nginx에서는 FastCGI / Uwsgi /SCGI 를 기능을 통해 웹서버의 WAS를 분리하여 서버의 부하를 방지하고 물리적으로 분리하여 보안을 강화 할 수 있습니다



    4) Proxy 서버 지원 및 로드밸런싱 지원



    Nginx에서는 프록시 서버 기능 지원으로 보안적으로 강화할 수 있고 프록시 서버 구성으로 로드밸렁싱 구성도 가능합니다



    Posted by 서버이야기