우분투 리눅스

[ubuntu linux] 우분투 apache 가상호스트 세팅 (아파치)

U-learner 2023. 3. 31. 17:14
반응형

우리가 리눅스 서버 세팅을 하는 이유 대부분 홈페이지 및 블로그(워드프레스) 운영 목적이 많으시죠. 저의 경우는 블로그와 클라우드 서버 운영이 목적이였습니다. 한 서버에 여러개의 사이트 를 운영하기 위해서는 아파치 서버에 가상호스트 또는 버추얼호스트 세팅을 해줘어야 합니다. 책을 보고 공부하다보니 정말 어려웠습니다. 그래서 블로그에 오늘은 [ubuntu linux] 우분투 apache 가상호스트 세팅 (아파치) 에 대해 작성 합니다. 

 

 

정보를 주는 것도 목적이지만, 솔직히 잘 까먹는 저를 위해서.. 

 

목차
1. 서브도메인 생성
2. conf 파일 작성 (https포함)
3. index.html 파일 생성 후 서브도메인 확인

 

1. 서브도메인 생성

우리가 흔히 아는 인터넷 주소를 "도메인(domain)"이라고 합니다. 아래 예시를 보면 바로 이해 가실 겁니다.

예시) 

- toylee.net  == 메인 도메인

- jpgpng.toylee.net == 서브 도메인

 

서브 도메인 구성을 위해서는 메인 도메인을 구매해야 합니다. 국내업체는 가비아, 카페24, 고도몰 같은 곳에서 도메인을 1년 단위로 구매 하실 수 있고요, 저는 세팅과 적용 속도가 빠른 구글 도메인을 통해서 도메인을 사용합니다.

여러 도메인 호스팅을 사용해 봤지만, 구글 도메인이 가장 만족스러웠습니다.

 

도메인 구입 내용은 하단 참고 글을 확인해주시고요, 메인 도메인이 있다는 가정하에 글을 작성하겠습니다.

 

 

구글 도메인 구입 방법, 가격 및 기능 살펴보기

구글 도메인은 5~6년 전 서비스를 시작했습니다. 다른 서비스들과 마찬가지로 베타 서비스로 시작하였는데요. 아시다시피 구글 서비스들 중 베타 딱지를 달고 있는 것들은 언제 종료될지 모릅니

lovedweb.com

 

구글 도메인 접속 후 dns메뉴를 클릭합니다.

 

맞춤 레코드 관리에 들어갑니다.

 

새 레코드 만들기를 누룬 후 서브도메인, CNAME, 메인도메인을 사진과 같이 작성합니다.

저장을 눌러주면 서브 도메인 설정이 완료됩니다.

2. conf 파일 작성 (https 포함)

내 리눅스 서버로 서브 도메인이 들어오면 /var/www/서브도메인폴더/html 로 이정표를 만들어 준다고 생각하면 됩니다. 

서버네임, 문서루트, 로그, 리다이렉트 등 여러 옵션이 있는데요, 이건 차후 자세히 포스팅해서 관련 글로 올리겠습니다.

 

cd /etc/apache2/sites-available/
vi jpgpng.toylee.net-le-ssl.conf   (vi 원하는이름.conf)
.
.
virtualhost 내용작성
.
.
a2ensite jpgpng.toylee.net-le-ssl.conf
systemctl restart apache2

<IfModule mod_ssl.c>
<VirtualHost *:80>
        ServerName jpgpng.toylee.net
        ServerAlias toylee.net
        DocumentRoot /var/www/jpgpng/html
        ErrorLog ${APACHE_LOG_DIR}/jpgpng_error.log
        CustomLog ${APACHE_LOG_DIR}/jpgpng_access.log combined
        Redirect permanent / https://jpgpng.toylee.net/
<Directory "/var/www/jpgpng/html/">
        Require all granted
        AllowOverride all
</Directory>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName jpgpng.toylee.net
        ServerAlias toylee.net
        DocumentRoot /var/www/jpgpng/html
        ErrorLog ${APACHE_LOG_DIR}/jpgpng_error.log
        CustomLog ${APACHE_LOG_DIR}/jpgpng_access.log combined

<Directory "/var/www/jpgpng/html/">
        AllowOverride all
        Require all granted
</Directory>


SSLCertificateFile /etc/letsencrypt/live/toylee.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/toylee.net/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

여기서 포인트는 htts가 아닌 https로 바로 설정하는데요, 하나의 https 인증서로 모든 서브 도메인 인증서를 커버한다고 보시면 됩니다. 기존에 저는 *.toylee.net 주소로 https 인증서를 생성해 두었고, 그것으로 모든 서브 도메인에 적용 시켰습니다.

 

SSLCertificateFile /etc/letsencrypt/live/toylee.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/toylee.net/privkey.pem

 

 

서브 도메인별로 https 인증서를 발급 받는 것도 당연히 가능합니다. 하지만 귀찮고 불편합니다. 

../a.toylee.net/fullchain.pem / ../b.toylee.net/fullchain.pem / ../c.toylee.net/fullchain.pem <- 이런 느낌..

 

우분투 리눅스에서 https 인증서 발급방법은 링크 남기겠습니다.

 

[ubuntu 20.04] 우분투 리눅스 ssl 보안 https 인증서 발행(certbot)

1. ssh server 접속 2. certbot 설치 sudo snap install --classic certbot 3. certbot 버전체크 (생략가능) certbot --version 4. apache2 가상호스팅 세팅 기본적으로 도메인.conf 로 세팅되어 있어야 한다. (이 내용은 apache2

2toy.net

자 모든 설정이 완료됨으로, systemctl restart apache로 아파치 서버를 재부팅 한 후 서브 도메인에 접속합니다. 무사히 잘 접속 되었습니다. 현재 웹페이지를 만들어 두지 않아서 웹의 민낯을 보고 계십니다. 

 

3. index.html 파일 생성 후 서브도메인 확인

웹사이트를 보기 위해서 index.html파일을 /var/www/jpgpng/html 경로안에 생성합니다.기본적인 html구문을 넣고서 다시 서브도메인으로 접속하면 자연스러운 웹페이지를 볼 수 있습니다.

cd /var/www/jpgpng/html
vi index.html
ls

 

 

너무 많은 내용을 생략하여 어렵게 느껴질지도 모르겠습니다. 기본적으로 ftp서버, apache서버, certbot, 도메인, 퍼미션 및 그룹 설정이 제대로 설치되었다면 문제가 없을 겁니다.

 

 

지속적으로 차후 글들을 정리해서 순차적인 글을 만들어서 제공하겠습니다. 문의시 댓글 남겨주시고요, 따라오시느라 고생하셨습니다. 

반응형