본문 바로가기
IT Security/LINUX Basic

22. Linux - 리눅스에 나만의 홈페이지를 만들어보자 2

by Rosmary 2020. 6. 7.
728x90
반응형

지난 포스팅에서, 리눅스의 httpd 서비스를 활성화하고, 웹 통신에 필요한 tcp 80번 포트를 방화벽에서 허용함으로써, 리눅스의 기본 홈페이지에 접속하는 과정까지 진행해보았다. 그러나, 이런 기본 페이지를 보기 위해 인터넷을 사용하는 사람은 거의 없을 것이다. 우리가 일반적으로 사용하는 홈페이지는 html(HyperText Markup Language)라고 불리는 일종의 문서 파일이며, 이것을 웹 브라우저를 통해 열게 될 경우, 파일의 내용에 따라 홈페이지가 나타나게 된다. 

 

본 포스팅에서는 아주 간단한 html 파일을 만들고, 이 파일을 http 설정 파일에 지정한 폴더로 이동시켜, 만든 html 파일이 웹 접속 시 잘 나타나는지 확인해보려고 한다.

 

** html 문서 작성 내용은 크게 어려운 점이 없다. html을 익힐 시간만 충분하다면 보름 안에 익히는 것도 가능하다. 그리고 다른 인터넷 블로그에서도 html과 관련된 내용은 널리고 널려있으므로, 본 포스팅에서는 html과 관련된 내용은 극히 일부만 다룰 예정이다.

 

 

1. http 설정 파일 - /etc/httpd/httpd.conf

 

여러 번 언급한 이야기지만, 리눅스의 모든 설정파일은 /etc 폴더 아래에 있다. httpd 서비스 역시 리눅스에 제대로 설치되어 있다면, /etc 폴더 밑에 httpd라는 이름으로 폴더가 하나 존재할 것이다.

 

 

httpd 밑에는 다시 여러 폴더가 존재하는데, 이 중 conf(configuration - 설정) 폴더가, httpd 설정과 관련된 파일이 들어있는 폴더다. cd 명령어로 해당 경로로 이동하자. 그리고 폴더 내 내용을 ls -lh로 확인하면, 아래와 같이 httpd.conf이 보일 것이다.

 

 

이 httpd.conf를 vi 문서로 열어보자. root 소유 폴더이기 때문에 당연히 root 계정 또는 sudo 권한이 있어야 한다. 파일을 열면, ssh 설정 파일과 마찬가지로 무진장 많은 주석 줄과 그에 비해 매우 적은 수의 주석 없는 줄이 혼재되어 있다. 이들 중, 수정이 거의 불필요한 내용은 제외하고 하나씩 살펴보자.

 

(1) Listen Address

 

파일의 34번째 줄을 보면, Listen이라는 단어로 주석 줄이 시작되는 것을 볼 수 있다. 

 

 

해당 문구를 보면, Listen은 http 접속 시 특정 IP 주소로만 웹 통신 요청을 듣겠다는 의미다. 즉, 현재 필자의 리눅스 인터페이스에 할당된 IP가 172.30.1.30과 172.30.1.111 두 개가 존재하는데, 이들 중 특정 인터페이스로만 들어오는 웹 통신 요청만 받겠다는 의미다. 41번째 줄에는 사용 예시가 나와있는데, 이 줄의 뜻하는 바는, 12.34.56.78 IP의 80번으로만 웹 통신 요청을 받겠다는 의미다. SSH 설정 파일의 ListenAddress와 동일한 기능을 가진다고 보면 된다. 

 

현재 기본 설정은 Listen 80만 적혀있는데, 이 말은 리눅스 서버의 모든 인터페이스 IP의 80번 포트로 웹 통신 요청을 받겠다는 의미다.  

 

기본 설정 시, 30번과 111번 IP로 모두 접속이 허용되는 것을 볼 수 있다.

만약, 특정 IP로만 접속을 허용하고 싶다면, 42번째 줄의 내용을 변경하고 저장한 뒤, httpd 서비스를 재시작 해주면 된다.

 

 

Listen Address가 111번만 허용되어 있기 때문에, 방금 전과 같이 30번으로 접속을 시도하면 접속이 진행되지 않는다.

 

30번의 접속은 연결이 거부되었다고 표시된다.

 

 

(2) ServerAdmin

 

httpd.conf의 설정파일의 81번째 줄을 보면, ServerAdmin과 관련된 설정 내용이 작성되어 있다. 인터넷을 이용하다 보면, 가끔씩 에러와 함께 관리자에게 연락을 달라는 팝업 문구와 함께 이메일이 표시될 때가 있는데, 이 홈페이지 관리자 이메일을 지정해주는 설정 칸이라 보면 된다.

 

 

ServerAdmin 뒤에 이메일 주소를 작성해주면 되는데, 아직 Domain 주소와 DNS에 대해 포스팅하지 않았기 때문에, ServerAdmin 이메일 주소를 여기서 작성한다는 것만 우선적으로 알아두면 된다. 이후 포스팅에서 DNS와 관련된 내용을 작성하면, 링크를 걸어 내용을 업데이트 할 예정이다.

 

 

3. ServerName 

 

ServerName은 IP 주소 대신 입력하는 주소를 지정하는 칸이다. 우리가 숫자로 구성된 IP주소를 모두 다 기억하고 있을 수 없기 때문에, 기억하기 쉬운 daum.net 이나 tistory.com과 같이 특정 구조를 가지는 주소를 통해 웹 페이지에 접속할 수 있도록 하는데, 이 주소를 작성하는 란이라 보면 된다.

 

 

현재, 우리가 사용하는 리눅스는 domain 주소를 따로 설정해두지 않은 상황이고, 설령 설정했다고 하더라도 주소 등록 기관에 우리의 주소와 IP가 등록되어 있어야 하기 때문에, 이 부분 역시 ServerAdmin과 마찬가지로 DNS에 대해 포스팅 한 뒤 링크를 걸어 업데이트 할 예정이다.

 

 

4. DocumentRoot와 DirectoryIndex

 

114번째 줄에 위치한 DocumentRoot는 우리가 만든 html 파일이 위치해야 할 폴더를 지정하는 란이다. httpd를 yum으로 설치한 상태라면, 기본 DocumentRoot 폴더 위치는 /var/www/html로 되어 있을 것이다.

 

 

그럼, 우리가 만든 html 파일의 이름을 아무렇게나 올려도, 웹 페이지에 html의 내용이 그대로 나타날까? 아니다. httpd 서비스가 처음으로 인지하는, 즉 메인 페이지라고 인식할 파일 명은 설정 파일 내에 작성한 파일명과 동일해야 한다. httpd.conf 파일의 164번째 줄을 보면, DirectoryIndex라고 작성된 내용이 보이는데, 여기에 httpd 서비스가 메인 html 파일을 인식할 파일명을 지정해주면 된다. index.html이 httpd 설정의 기본 값으로 지정되어 있다. 

 

 

이제, /var/www/html로 이동하여 touch 명령어로 index.html 파일을 하나 생성해보자. 생성하고 httpd 서비스를 재실행한 뒤, 다시 웹 페이지로 접속을 해보면, 기본 페이지는 사라지고 빈 내용만 나타나게 될 것이다.

 

index.html 내에는 아무 내용도 작성되어 있지 않다. 마찬가지로 웹 페이지에도 아무 내용이 나타나지 않는다.

 

다시 리눅스로 돌아와서 생성한 index.html 파일 내에 html 문서를 작성해보자. 우선, 아래와 같이 html 문서를 작성하자.

 

<!DOCTYPE html>

     <head>

           <title> 브라우저 텝에 나타나는 웹 페이지 이름 작성 </title>

     </head>

     <body>

           <h1> 홈페이지 메인 부분 제목 입력 </h1>

           <p> 

                   단락 내용 작성.                                    -> 한 줄 개행하려면 작성 문장 뒤에 <br>을 쓰면 된다.

           </p>

     </body>

</html>

 

 

각자 index.html 파일의 내용 작성이 마무리 되었다면, 저장하고 나와서 다시 httpd 서비스를 재실행한 뒤 웹 페이지로 접속해보자.

 

 


지난 포스팅에 이어 지금까지 httpd 서비스의 설치, 구동, 설정 및 직접 만든 웹 페이지 접속까지 진행해보았다. 사람마다 다르겠지만, 필자는 필자가 간단하게나마 만든 웹페이지를 접속한 이 때부터 리눅스에 상당히 재미를 많이 붙였던 것 같다. 물론, 페이지 제작을 위해서는 html 뿐만 아니라, CSS 및 JavaScript도 추가로 배워야 쓸 만한 홈페이지가 나오기 때문에 별도의 학습이 필요한 건 사실이다. 

 

다음 포스팅에서는, 이렇게 만든 홈페이지를 어떻게 우리가 일상적으로 사용하는 인터넷 주소로 접속할 수 있는지 알아보려 한다. 

 

 

FIN.

반응형

댓글