Network/Linux & WindowsServer

CentOS 7 - Linux (DHCP, FTP, DNS, WEB, Virtual Host) / 2

잇(IT) 2022. 4. 8. 10:00
728x90

https://insoobaik.tistory.com/104

 

CentOS 7 - 1 / Linux (DHCP, FTP, DNS, WEB)

- 이번 포스팅은 DHCP, FTP, DNS, WEB을 리눅스에서 작성하여 Windows 환경에서 확인해보는 작업을 해 볼 것이다. DHCP, FTP, DNS, WEB 설정 모두 리눅스에서만 설정 할 것이고 조건은 아래 주어진 조건에 맞

insoobaik.tistory.com


- 이번 포스팅은 이전 포스팅에 이어서 Virtual Host 설정을 해 볼 것이다. Virtual Host는 하나의 IP와 Port를 갖고 여러 웹 사이트를 서비스 하는 방법이다. 여러 웹 사이트를 서비스 하기 위해선

1. IP가 여러개 있어야 하거나

2. 여러개의 Port를 사용해야 하는데

이는 사용자들에게 번거로움이 발생하기 때문에 동일한 IP와 동일한 Port를 사용하면서 오류가 발생하지 않는 Virtual Host라는 방법을 사용해 볼 것이다.


Virtual Host

 

1. 하나의 IPPort를 갖고 여러 웹사이트를 서비스 하는 방법

- 가상 호스트 Virtual Host

 

2. 여러 웹사이트를 서비스 하는 방법

- 여러 개의 IP가 있는 경우

- 여러 개의 Port를 사용하는 경우

           - 사용자들이 port를 입력해야하는 번거로움 발생

- 동일한 IP와 동일한 Port를 이용 : 가상 호스트

           - 대부분의 사이트에서 사용하는 방법

 

* tistory.com에서 다수의 고객들이 개별 사이트를 운영할 수 있는 방법

https://virtualtech.tistory.com/ => 개별 사이트

virtualtech => 이 부분이 사용자마다 다르다

 

* naver.com 역시 blog.naver.com / café.naver.com 등을 운영하는데 이 방법이 가상호스트 방식을 사용하는 것이다.

 

- 이전 포스팅에 이어서 위의 빨간 부분 (virtual host 설정을 해 볼 것이다.)


- CentOS7-1 설정

 

- 먼저 /var/www/blog 디렉토리를 생성한다. index.html 파일을 생성하여 페이지에 띄울 화면을 작성한다.

 

- 조건에 맞게 blog intra를 포함한 도메인 주소를 사용할 것이기 때문에 blogintra 도메인을 등록한다. master&slave에서 master에 해당하는 서버이기 때문에 추가로 변경된 사항을 slave에 공유하기 위해선 serial 번호를 이전 번호보다 큰 숫자로 늘려주어야 한다.

 

- 변경된 사항을 저장하기 위해 시스템 재실행을 해준다.

 

- CentOS7-1에서는 blog을 추가로 웹에 사용할 것이기 때문에 NameVirtualHost, VirtualHost, Directory 설정을 해준다.

 

357~361 : 가상 호스트로 80번 포트를 사용하고, 서버 네임 지정, DocumentRoot로 사용할 경로 지정한다.

 

ServerAlias는 가상 호스트의 별칭을 지정하는 것으로 등록 되지 않은 가상 호스트를 사용하기 위해 사용한다.

 

363~366 : blog web을 사용할 디렉토리로 위에서 /var/www/blog를 생성하였기 때문에 DocumentRoot/var/www/blog로 지정했고 도메인명을 blog.baikis.xyz (/etc/httpd/conf/httpd.conf에서 설정했다.)으로 설정한다.

 

368~372 : /var/www/blog 디렉토리에 10.0.0.201 IP의 접근은 막고 나머지 IP 주소의 접근은 허용 설정을 위해 작성하였다.

 

- 변경된 사항을 저장하기 위해 시스템 재실행을 해준다.


- CentOS7-2 설정

 

- blog, intra web을 사용하기 위해 /var/www/blog(intra) 디렉토리를 생성해준다. 또 웹 페이지 작성도 해준다.

 

- /etc/httpd/conf/httpd.conf

355 : NameVirtualHost 이름 기반 가상 호스트를 연결할 포트를 지정할 때 사용한다. 80번 포트로 연결 할 것이다라는 뜻이다.

 

- /var/www/intra/.htaccess

이 파일은 디렉토리에 대한 설정 옵션을 제공한다. 아파치 웹서버 브라우저 클라이언트에서 접근할 떄 어떤 식으로 서비스를 제공할지 설정하는 곳이다.

AuthUserFile 지시어는 사용자 인증에 사용할 사용자명과 암호 목록을 저장하는 문자 파일명을 지정한다.

 

- htpasswd는 아파치로 운영중인 웹서버에 접근할 때 사용자 인증을 하는 기능이다. 리눅스에서 사용하는 일반 사용자와는 다른 사용자에 해당한다.

 

- 변경된 사항을 저장하기 위해 시스템 재실행을 해준다.

 

- slave에 해당하는 서버이기 때문에 dns 패키지 재실행을 하게되면 파일이 업데이트 되는 것을 알 수 있다.


- CentOS7-3 설정

 

- /etc/httpd/conf/httpd.conf

가상 호스트를 사용 할 것이기 떄문에 htpasswd를 사용하여 intra를 접근시 인증을 필요로 할 것이기 때문에 368~370과 같이 인증 관련 설정을 해준다.

 

- intra 디렉토리를 생성해주고 intra 웹페이지를 작성해준다.

 

- .htaccess 파일을 생성하여 디렉토리에 대한 설정 옵션을 제공한다. 아파치 웹서버 브라우저 클라이언트에서 접근할 떄 어떤 식으로 서비스를 제공할지 설정하는 곳이다.

AuthUserFile 지시어는 사용자 인증에 사용할 사용자명과 암호 목록을 저장하는 문자 파일명을 지정한다.

 

- htpasswd 명령어를 사용하여 아파치 웹서버 접근시 인증을 하여 접근시킬 사용자를 생성한다.

첫번째 사용자 생성시 -c를 붙이지만 두번째부터는 붙이지 않고 생성한다.

 

- DNSWEB 시스템 재실행을 시켜준다. DNS의 경우 CentOS7-3 서버는 slave에 해당하기 떄문에 시스템 재실행 시 master에서 업데이트 된 zone 파일을 받아온 것을 확인 할 수 있다.


- Windows 환경에서의 확인

 

- 위에서 설정한 리눅스 설정을 Windows 환경에서 제대로 적용되었는지 확인해 볼 것이다.

- W10-1 에서 /var/www/html 디렉토리와 /var/www/blog 디렉토리의 경로에 해당하는 도메인 접속시 해당 웹페이지가 나오는 것을 볼 수 있다.

 

- W11-1의 경우 www.baikis.xyz에 접근 시 문제 없이 접근되지만 blog.baikis.xyz 접근시 /etc/httpd/conf/httpd.conf에서 설정한 Order denyW11-1IP 주소를 작성했기 떄문에 접근이 제한되는 것을 확인 할 수 있다.

 

- intra.baikis.xyz 도메인 접속시 아파치 인증을 통한 접속이 가능하도록 설정했기 때문에 htpasswd에 설정한 사용자명과 암호를 입력하게 되면 intra.baikis.xyz 페이지에 접근 가능한 것을 볼 수 있다.

728x90