우분투(16.04, 17.10)에 아파치로 웹호스팅 하는 방법입니다.
먼저 웹 호스팅 구조를 살펴보면 아래 그림과 같습니다.
인터넷으로 아파치에게 특정 홈페이지 요청이 들어오면
아파치는 등록된 Virtual Host 와 요청이 들어온 홈페이지 주소를 매칭하여
해당하는 페이지의 웹 소스를 찾아주는 흐름입니다.
이글에서는
아파치에서 Virtual Host를 설정하는 방법에 대해서 알아 보겠습니다.
아파치를 설치하게 되면 아래의 폴더가 생성이 되고
그폴더 안에는 000-default.conf 파일이 생성 됩니다.
아파치 호스팅 폴더 : /etc/apache2/sites-available
이 파일은 기본적으로 아파치가 생성하는 웹페이지 호스트 설정파일 입니다.
내용은 아래와 같습니다.
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request’s Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, …, trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with “a2disconf”.
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
위의 내용중 마킹된 내용을 지워보면 아주 간단해 집니다.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
이제 예를 들어서 Hosting Setting을 해보겠습니다.
예시)
서비스 하고자 하는 웹주소와 웹페이지 소스의 위치
1)홈페이지 주소 : www.AAA.com 폴더위치: /home/popcornware/Hosting/websiteaaa
2)홈페이지 주소 : www.ZZZ.com 폴더위치: /home/popcornware/Hosting/websitezzz
홈페이지 주소 : www.AAA.com 의 작업
000-default.conf 파일을 복사해서 아래와 같이 수정하기를 권고 드립니다.
파일명은 www.AAA.com.conf 로 가정하겠습니다.
<VirtualHost *:80>
ServerName www.AAA.com
ServerAdmin webmaster@localhost
DocumentRoot /home/popcornware/Hosting/websiteaaa/
<Directory /home/popcornware/Hosting/websiteaaa/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
파일 작업 후 www.AAA.com.conf 파일을 /etc/apache2/sites-available 폴더로 넣어줘야 합니다.
홈페이지 주소 : www.ZZZ.com 의 작업
000-default.conf 파일을 복사해서 아래와 같이 수정하기를 권고 드립니다.
파일명은 www.ZZZ.com.conf 로 가정하겠습니다.
<VirtualHost *:80>
ServerName www.ZZZ.com
ServerAdmin webmaster@localhost
DocumentRoot /home/popcornware/Hosting/websitezzz/
<Directory /home/popcornware/Hosting/websitezzz/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
파일 작업 후 www.ZZZ.com.conf 파일을 /etc/apache2/sites-available 폴더로 넣어줘야 합니다.
눈치 채셨겠지만,
아파치 서버는 ServerName , DocumentRoot, Directory의 내용을 파악해서
적절한 호스팅을 하는 구조입니다.
따라서, 위의 요인을 서비스 하려는 웹 페이지 이름과 폴더위치에 맞게 설정해주고
별도 파일을 만들어서 아파치 폴더에 넣어 주고 아래의 작업을 하면 호스팅 준비가 끝납니다.
아파치 명령어 a2ensite 로 호스팅 설정 파일을 활성화 시켜 줍니다.
sudo a2ensite www.AAA.com.conf
sudo a2ensite www.ZZZ.com.conf
다시 아파치 명령어 a2dissite로 000-default.conf 설정을 비활성화 시켜 줍니다.
※ 이작업을 하지 않으면 호스팅별 페이지를 볼 수 없습니다.
sudo a2dissite 000-default.conf
이제 아파치 서버를 재시작 합니다.
sudo service apache2 reload
즐거운 서버운영 되세요
'윈도우 대신 리눅스' 카테고리의 다른 글
우분투 디스크 이미지 만들기 (0) | 2021.11.06 |
---|---|
[Dr.3632] Mysql 사용자 추가 권한 부여 (0) | 2021.01.16 |
[Dr.3632] Mysql 설치 후 root 초기 비밀번호 설정 (0) | 2021.01.16 |
[Dr.3632] Ubuntu GRUB 복구 부팅복구 (0) | 2021.01.11 |
[Dr.3632] 우분투에서 네트웍 IP 조회- arp-scan (0) | 2020.12.25 |