Apache를 사용한 실제 웹사이트 설정 및 배포 (Setting Up and Deploying a Real Website with Apache)
Apache 웹 서버를 사용하여 실제 웹사이트를 설정하고 배포하는 과정은 다음과 같은 단계로 나뉩니다:
- Apache 설치
- 웹사이트 파일 준비
- Apache 가상 호스트 설정
- 도메인 네임 시스템(DNS) 설정
- SSL 인증서 설정 (옵션)
- 방화벽 설정
- 테스트 및 배포
1. Apache 설치 (Installing Apache)
먼저, Apache 웹 서버를 설치합니다. Ubuntu를 예로 들면, 다음 명령어를 사용합니다:
sudo apt-get update sudo apt-get install apache2
2. 웹사이트 파일 준비 (Preparing Website Files)
웹사이트 파일을 준비하여 /var/www/html
디렉토리에 배치합니다. 예를 들어, index.html
파일을 배치합니다:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>My Website</title> </head> <body> <h1>Welcome to My Website</h1> <p>This is a sample webpage.</p> </body> </html>
해당 파일을 /var/www/html
디렉토리에 저장합니다.
sudo cp index.html /var/www/html/index.html
3. Apache 가상 호스트 설정 (Setting Up Apache Virtual Hosts)
도메인 별로 웹사이트를 호스팅하기 위해 가상 호스트를 설정합니다. 예를 들어, example.com
도메인에 대한 가상 호스트를 설정합니다.
가상 호스트 설정 파일 생성
다음 명령어를 사용하여 새로운 가상 호스트 설정 파일을 생성합니다:
sudo nano /etc/apache2/sites-available/example.com.conf
설정 파일 내용:
<VirtualHost *:80> ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com <Directory /var/www/example.com> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined </VirtualHost>
디렉토리 생성 및 파일 복사
웹사이트 파일을 저장할 디렉토리를 생성하고 파일을 복사합니다:
sudo mkdir /var/www/example.com sudo cp -r /var/www/html/* /var/www/example.com/
가상 호스트 활성화 및 Apache 재시작
가상 호스트를 활성화하고 Apache를 재시작합니다:
sudo a2ensite example.com.conf sudo systemctl restart apache2
4. 도메인 네임 시스템(DNS) 설정 (Setting Up DNS)
DNS 제공자(예: GoDaddy, Namecheap)에서 도메인 이름을 등록하고 A 레코드를 설정하여 도메인을 서버의 IP 주소에 매핑합니다. 예를 들어, example.com
을 서버의 IP 주소 123.456.78.90
에 매핑합니다.
5. SSL 인증서 설정 (Setting Up SSL Certificates)
Let’s Encrypt를 사용하여 무료 SSL 인증서를 설정합니다.
Certbot 설치
Certbot을 설치합니다:
sudo apt-get install certbot python3-certbot-apache
SSL 인증서 발급 및 Apache 설정
Certbot을 사용하여 SSL 인증서를 발급하고 Apache 설정을 자동으로 구성합니다:
sudo certbot --apache -d example.com -d www.example.com
6. 방화벽 설정 (Setting Up the Firewall)
UFW(Uncomplicated Firewall)를 사용하여 Apache를 허용합니다:
sudo ufw allow 'Apache Full' sudo ufw enable
7. 테스트 및 배포 (Testing and Deployment)
웹사이트가 올바르게 설정되었는지 테스트합니다. 브라우저에서 http://example.com
과 https://example.com
을 열어 웹사이트가 정상적으로 작동하는지 확인합니다.
로컬 호스트 테스트
로컬 호스트에서 테스트하려면 /etc/hosts
파일에 다음 항목을 추가합니다:
127.0.0.1 example.com
웹 브라우저에서 http://example.com
을 열어 테스트합니다.
서버 로그 확인
Apache 로그 파일을 확인하여 오류나 경고가 없는지 확인합니다:
sudo tail -f /var/log/apache2/error.log sudo tail -f /var/log/apache2/access.log
결론
이제 Apache 웹 서버를 사용하여 실제 웹사이트를 설정하고 배포하는 방법을 배웠습니다. 정리된 단계들을 따라가면서 서버를 설정하고, 필요한 경우 SSL 인증서를 적용하여 웹사이트의 보안을 강화할 수 있습니다. 지속적인 모니터링과 유지보수를 통해 안정적인 서비스를 제공할 수 있습니다.