반응형

    IIS 웹서버 설정 이해하기



    IIS라는 웹서버를 이용하다보면 설정방법에서 조금 헷갈릴 때가 있습니다. 서버 구축을 처음 해보는 분들의 경우 분명 "B'를 "A"로 설정한 것 같은데, 다시 확인을 해보면 여전히 "B"로 되어 있는 경우입니다. 조금 황당한 경우지만 저도 처음 서버를 구축했을 때 많이 겪었던 상황이라 설명할 필요가 있겠다 싶었습니다.


    웹서버 설정에 대해서 어디에서 설정을 하느냐에 따라 실질적인 사이트 운영에 직접적으로 관여를 하게 됩니다. 그러므로 그 설정법에 대해 알아둘 필요가 있습니다.




    기본적으로 웹서버를 설정하는 방법에는 웹서버 전체 설정각 웹사이트 별 설정이 따로 있습니다.

    웹 서버에 설정하는 것은 기본적인 설정입니다. 흔히들 이야기하는 "웹서버단에서 설정"이 여기에 해당됩니다. 웹서버에서 설정한 내용들은 설정 이후에 생성할 사이트들에서 기본적으로 설정될 내용들이고, 별다른 설정을 하지 않는 사이트에서도 반영이 되는 기본 설정입니다.





    웹 서버단에서 설정하기


    웹서버 단이라는 이야기를 처음 접하게 되면 약간 어려울 수도 있는데, 그림을 보면서 보시면 쉽게 확인이 가능합니다.


    IIS를 실행하면 왼쪽에 서버와 그리고 각 웹 사이트들을 볼 수 있는 트리메뉴가 존재합니다. 이 트리메뉴에서 가장 상위에 있는 것이 바로 웹 서버입니다. 기본적으로 서버 이름은 컴퓨터 이름을 그대로 따라갑니다. 이 서버를 클릭해보면 오른쪽에 "[서버] 홈" 이라는 형태로 IIS 및 FTP 설정 메뉴들이 나오는데 기본적으로 각 웹사이트들을 설정하는 내용과 비슷합니다. 아니, 엄밀히 말하면 각 웹사이트들에서 설정할 수 있는 내용모다 많습니다.



    바로 여기에서 설정을 하게 되면 특별히 따로 각 웹사이트에서 설정을 하지 않는 이상에 이 서버의 설정을 그대로 따라 갑니다. 그래서 이 웹 서버단에서 설정할 수 있는 것들과 각 사이트별로 설정할 수 있는 FTP와 IIS 설정들을 보면 대부분 비슷합니다.


    예를 들어서, PHP 관리자를 통해서 PHP 설정을 해보면 아래와 같은 화면이 나옵니다.




    이 화면은 서버에서 PHP를 세팅하고 있는 중이지만, 보여지는 화면은 각 웹사이트에서 설정하는 PHP 설정과 동일 합니다. 하지만 서버단에서는 기본적으로 어떤 버전의 PHP를 사용할지, 그리고 그 PHP의 설정은 어떻게 할 것인지 전체적인 설정을 하게 됩니다.

    따라서, 별달리 웹 사이트별로 PHP 설정을 건드리지 않는 한, 모든 웹 사이트들은 이 설정을 따라가게 됩니다.



    PHP 관리자 뿐만 아니고, 다른 설정들도 많지만 그래도 신경쓰이는 부분은 서버단 설정과 사이트단 설정에서 어느 부분이 차이가 있는가가 궁금해 지지 않나요? 정리를 해보다면 일반적인 웹 사이트 설정과 서버단에서 설정 중 다른 것들을 꼽아 보자면 세가지가 있습니다.



    1. ISAPI 및 CGI 제한

    2. 서버 인증서

    3. 작업자 프로세스


    이렇게 세가지는 각 웹 사이트들에서는 설정할 수 없는 서버만의 고유한 설정들입니다. 하지만 서버 인증서를 제외하면 다른 설정들은 달리 설정할 일이 별로 없지요.







    웹사이트 별로 설정하기


    이번엔 웹 사이트 별로 설정을 했을 때 경우를 설명하도록 하겠습니다. 보통 "사이트단 설정"이라고 말을 합니다. 많이 사용하는 아파치 서버의  .htaccess 파일을 이용해서 설정하는 것과 비슷합니다.


    기본적으로 사이트별 설정할 수 있는 부분들은 서버단에서 하는 설정과 크게 다르지 않습니다. 대신 이렇게 사이트 단에서 설정을 하면 일괄적으로 바뀌는 것이 아니라 사이트마다 원하는 대로 각기 다른 설정들을 할 수 있습니다.



    각 사이트별로 여러가지 설정을 지원하는 것이 바로 IIS의 장점중 하나입니다. (물론 다른 웹 서버들도 사이트별로 설정할 수 있지만 GUI 방식처럼 직관적이지는 않죠.)




    여기서도 간단하게 PHP 설정에 대해서 예를 들어보도록 하겠습니다.

    서버단에서 설정을 해도 사이트 단에서 따로 PHP 관련된 설정을 하면 사이트별로 따로 설정된 PHP를 사용가능합니다. 그렇기 때문에 사이트 별로 PHP 관리자가 존재하는 것이구요.


    특히, 요즘에 몇몇 웹 전용 소스들을 설치 해보면 PHP 7.0 을 이용한 소스들도 있고, 어떤 CMS 들은 PHP 7을 쓰면 제대로 구동이 되지 않는 경우도 있습니다. 그럴 때, IIS에서는 각 사이트별로 달리 설정을 할 수 있기 때문에 편리하다고 할 수 있습니다.




    예를 PHP 관리자로 들긴 했지만 대부분 사이트별로 설정을 하게 된다면 아마 거의 PHP 관리자 설정일 겁니다. 근데, 한가지 주의해야 할 점은 각 사이트 별로 설정할 경우에 사이트 별로 PHP 버전을 설정 가능하지만, 만약 같은 PHP 버전을 사용하고 있는 사이트가 있다면 서로 다른 설정을 할 수는 없습니다. 


    좀 더 간단하게 이야기를 풀어보자면,

    A 라는 사이트에서 PHP 5.6 버전을 사용하면서 업로드 제한을 1GB 로 설정한 경우라고 생각해보겠습니다. 

    만약 B 라는 사이트에서 똑같이 PHP 5.6을 사용해야 하고 업로드 제한을 2GB로 설정해야 하는 상황이 된다면 동시에 같은 버전의 PHP를 사용하고 있는 중이기 때문에 두 사이트 서로 다르게 설정을 할 수 없습니다. 

    같은 버전의 PHP라면 어느 사이트에서든지 같은 설정을 사용해야 합니다.


    PHP 설정에 대해서는 다음 시간에 더 자세하게 다룰 예정이라 여기까지만 소개를 하고, 다음 포스팅에 다시 설명하도록 하겠습니다.


    이번 시간에는 IIS 에서 설정 구조를 정확하게 이해를 하고 전체적인 설정과 사이트별 설정을 정확하게 숙지하는 것만으로 여러 번거로운 상황을 줄일 수 있습니다.










    반응형
    Posted by clamp2x