안녕하세요, 관리자입니다. (_ _)
명품 웹 프로그래밍 홈페이지를 만들고 작성하는 첫 공식 게시글이자 첫 블로그 포스트네요.
이번 포스트에서 소개할 내용은 내 컴퓨터로 웹 서버 만들기! 입니다.
웹 공부 하시다보면 다들 한번쯤 이런생각 해보셨을겁니다.
'책에서 하라는대로 하니까 뭔가 만들어지긴 하는데, 내가 만든 웹 페이지도 남이 들어와서 볼 순 없을까?'
왜 없겠어요. 다만 그 방법을 모르고 있었던 것 뿐이죠. 이번 포스트에서 그 방법에 대해 관리자와 함께 천천히 빠르게(?) 알아보겠습니다.
우선, 간단한 배경지식을 하나 익히고 가볼까 합니다. 학우 여러분들은 '웹 서버'라는 단어를 한번쯤은 들어보셨죠?
↑ 그림 1 - 웹 서버와 클라이언트의 관계를 나타내는 그림
사람들이 어느 웹 페이지에 접속하기 위해선 사람들(클라이언트)의 요청을 처리하고 응신할 수 있는 컴퓨터(서버)가 있어야 하는데, 그것을 웹 서버라고 합니다.
웹 서버의 데이터는 HTTP 프로토콜 규격에 맞는 데이터 형식으로 변환된 후 인터넷을 통해 클라이언트에게 전달되고, 클라이언트는 전달받은 데이터를 브라우저에게 보냅니다.
그러면 브라우저는 그 데이터를 다시 사람이 알아볼 수 있는 형식의 데이터로 변환하고, 최종적으로 사용자에게 보여줍니다.
이 일련의 절차가 모두 정상적으로 실행되어야 서버에 있는 자료를 볼 수 있는 것이죠.
좀 머리아픈 이야기였나요? 결론만 얘기하자면, 내 컴퓨터에 있는 웹 페이지를 다른 사람들이 보게 하려면 내 컴퓨터를 웹 서버로 만들어야 한다는 것입니다.
OK, 여기까진 알겠고 그럼 이제 "내 컴퓨터를 어떻게 서버로 만드느냐?" 가 문제입니다.
컴퓨터를 서버로 만든다, 좀더 고급스럽게 표현하면 서버를 구축한다고도 표현하는데요, 웹 서버를 구축하는 방법은 아주 다양합니다.
소-중규모의 개인 서버를 구축하고 운영할 경우, 컴퓨터에 아파치 같은 프로그램을 설치하여 사용하거나, 사설 호스팅 서버를 많이 이용합니다.
규모가 큰 서버를 운영 할 경우엔 몇천만원 ~ 몇억단위의 비싼 서버 컴퓨터를 구매하여 구축하기도 합니다.
하지만 이러한 방법들은 어느정도 웹에 전반적인 지식을 갖추고 있어야 쓸 수 있는 방법이기 때문에, 당장은 이용하기 어렵습니다.
일단 이런 어려운 얘기들은 나중에 공부하고, 초특급으로 간단한 웹 서버 구축법을 알아보도록 하자구요.
우리가 웹 서버 구축에 이용할 프로그램은 Mongoose Web Server (몽구스 웹 서버)라는 프로그램 입니다.
↑ 그림 2 - Mongoose Web Server (몽구스 웹 서버) 로고
옛날에는 미어캣 모양의 로고였는데, 최근에는 저런모양으로 바뀌었네요.
우선 이 몽구스 웹 서버 프로그램을 다운 받아주셔야 하는데, 홈페이지에 보시면 Download 게시판에 6.3버전과 최신버전인 6.5버전이 올라와 있습니다.
교재에서는 6.3버전을 사용하였는데 사실상 6.3이나 6.5 어느것을 사용하여도 무방하기 때문에 아무거나 마음에 드는 것으로 다운받아 주세요.
다운로드 게시판 링크 : http://www.webprogramming.co.kr/download
마음에 드는 버전을 다운로드 하셨다면, 이제 폴더를 하나 만들어주세요. 이 폴더는 앞으로 웹 서버의 루트(최상단 경로)로 쓰이게 됩니다.
폴더명은 아무렇게나 하셔도 되고, 경로도 아무 데나 상관 없습니다.
단! 전체 경로중에 한글이 포함된 경우 몽구스 웹 서버가 인식을 하지 못하기 때문에 경로는 모두 영어로 이루어져 있어야 합니다.
여기까지 하셨다면, 이제 다른사람들에게 보여주고싶은 웹 문서들을 이곳에 옮겨주세요.
낱개의 웹 페이지를 두어도 괜찮고, 폴더별로 정리된 하나의 패키지도 괜찮습니다. 저는 1장에 있는 test1.html을 두었습니다.
↑ 그림 3 - 루트 폴더와 test1.html 파일
공유하고자 하는 웹 문서들을 저처럼 옮겨놓으셨다면, 이제 몽구스 웹서버 프로그램을 실행시켜주세요. 아마 자동으로 웹 페이지가 열리실 겁니다.
아직 환경 설정을 하지 않았으니 일단은 닫아주시구요, 닫으신 후 화면 우측 하단 알림영역에 있는 몽구스 트레이 아이콘을 오른쪽 클릭해주세요.
↑ 그림 4 - 몽구스 컨텍스트 메뉴
오른쪽 클릭을 하시면 상단 그림과 같이 컨텍스트 메뉴가 등장합니다. 중하단에 있는 "Advanced settings"를 눌러주세요.
그럼 몽구스 웹 서버의 설정을 변경할 수 있는 웹 페이지가 열리게 됩니다! 이곳에서 여러가지 설정의 변경이 가능합니다.
저희는 이중에 웹 서버의 루트 설정과 포트 설정, 이렇게 2가지 설정만을 바꿔보겠습니다. 다른 설정들은 좀 더 깊은 지식이 요구되므로.. 다음 기회에 알아보겠습니다.
그런데, 루트는 뭔지 알겠는데 포트는 무엇일까요? 어디서 많이 듣긴 했는데 말이죠. 간단히 설명을 드리자면 보통 통신을 위해선 IP(호스트)와 포트 2가지가 필요한데,
IP는 호스트를 찾아낼 때 사용되고 포트는 호스트 내에서 어떤 프로세스와 통신할 지 구분하기 위해 쓰인답니다.
또한 웹 프로토콜을 사용하는 인터넷 주소는 http(s)://호스트:포트 형식으로 이루어져 있으며, 어느 웹 서버던지 예외는 없습니다.
그런데 인터넷 주소를 보면 포트 부분이 안적혀있죠? 위에서 인터넷 주소는 호스트:포트 형식으로 표시된다고 했는데, 왜 아무것도 표시가 되어있지 않은 걸까요?
사실 특별한 일이 없는 이상 http 프로토콜은 80번 포트를 사용하기로 약속되어 있습니다. 때문에 80번 포트를 사용하면 인터넷 주소에 굳이 :80을 붙일 필요가 없다고 판단하여
:80 표시를 생략하는 것 입니다. 네이버의 도메인 끝에 :80을 붙여보세요. (http://www.naver.com:80) 아무 문제 없이 접속이 가능하답니다.
이야기가 잠깐 다른데로 새버렸네요. 다시 본론으로 돌아와서, 환경 설정 웹 페이지를 봐주시기 바랍니다.
여러가지 설정이 많은데, 저희가 보아야 할것은 document_root 부분과 listening_port 부분입니다.
↑ 그림 5 - 몽구스 웹 서버 환경 설정
document_root는 웹 서버의 루트의 경로를 지정하는 부분입니다. 좀 전에 만든 루트의 경로를 이곳에 기입해주세요. 기본경로는 몽구스 웹 서버 프로그램의 현재 디렉토리입니다.
listening_port는 웹 서버의 포트입니다. 기본은 8080으로 되어있는데, 80으로 바꾸어주세요.
설정 변경이 끝나셨다면 Save Settings를 눌러 설정을 저장하신 후, 웹 페이지를 닫고 트레이 아이콘에서 Exit를 눌러 종료해주세요. 그리고 다시 실행해주세요.
실행하시면 아래와 같이 루트 경로에 있는 하위 파일들이 나타나게 됩니다. 혹시 창이 닫혔다면, 컨텍스트 메뉴를 열어 "Go to my Address: ~~~~" 메뉴를 실행해주세요.
↑ 그림 6 - 웹 서버 접속시 최초 화면
현재는 하나의 웹 문서만 집어넣어 저렇게 표시되지만, 루트에 다양한 폴더와 파일들을 집어넣으면 탐색기를 이용하듯 여러 파일들에 접근이 가능합니다.
test1.html을 한번 눌러보겠습니다.
↑ 그림 7 - 웹 서버에 있는 test1.html 웹문서를 연 화면. 내가 호스트라면 우측과 같이 도메인 대신 "localhost"를 입력해도 된다.
네, test1.html가 아주 잘 보이네요. 몽구스 웹 서버가 정상적으로 동작하고 있습니다.
참고로, 웹 서버가 현재 내 컴퓨터에서 작동하고 있다면 호스트 입력부분에 아이피나 도메인 대신 "localhost"를 입력하셔도 된답니다.
그러나 내 컴퓨터가 아닌 다른 서버에 접속하려면, 반드시 아이피나 도메인을 입력해주셔야 해요.
여기까지 "초간단! 5분만에 내 컴퓨터를 웹 서버로 만들어보자" 였습니다. 어때요, 참 쉽죠?
이용 중에 궁금한 점이 있으신 분들 께서는 QnA 게시판에 질문을 올려주세요. 친절하게 답변 해드리겠습니다!
긴 글 읽으시느라 수고많으셨습니다~
1. 서버 주소로 처음 들어갔을때(위의 글에서는 192.168.0.2)로 들어갔을때 INDEX OF/ 랑 루트 경로에 있는 하위 파일들이 뜨지 않게 하고 제가 집어넣고 싶은 HTML 파일의 실행결과가 뜨게 하려면 어떻게 하죠?
2. webserver 폴더에 test1.html 만 집어넣어서 실행이 되나요? 저는 루트 경로 파일에 제가 넣고 싶은 파일들과 mongoose-free-6.5를 같이 집어넣어야지 실행이 되던데요?