이전 글 보러 가기
이전까지는 Apache, PHP, phpMyAdmin 환경을 구성하고 보안 설정을 마쳤다.
이번 마지막 실습에서는 실제 서비스 운영을 염두에 둔 가상 호스트 설정, Let's Encrypt 인증서 적용, 그리고 최고 관리자 설정까지 수행하였다. 말 그대로 지금까지 학습한 리눅스 서버 구축 내용을 종합적으로 적용한 실습 프로젝트이다.
1. Apache 동시 접속자 수 설정하기
Apache는 동시 접속자를 처리하기 위해 여러 멀티 프로세싱 모델 (MPM) 중 하나를 사용한다.
본 실습에서는 prefork 모드를 사용하였다.
MPM 확인하기

a2query -M
설정 조건
- StartServers와 MinSquareServers는 같은 값 설정
- MaxSpareServers는 위의 2배
- ServerLimit은 기본값 256 => 300으로 확장 설정

이 설정을 통해 웹 서버의 처리 성능을 조정하고, 높은 트래픽에서도 안정적으로 대응할 수 있도록 구성하였다.
2. Virtual Host 설정하기 (도메인 구성)
nip.io의 서브 도메인을 활용해 실습을 진행했다.
설정 파일 위치
/etc/apache2/sites-available/iamahhyun.ip주소.nip.io.conf
설정 예시
<VirtualHost *:80>
ServerName iamahhyun.ip 주소.nip.io
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>
<VirtualHost *:443>
ServerName iamahhyun.ip 주소.nip.io
DocumentRoot /home/iamahhyun/www
<Directory /home/iamahhyun/www>
AllowOverride All
require all granted
php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value session.cookie_httponly 1
php_value session.use_strict_mode 1
</Directory>
AssignUserID iamahhyun iamahhyun
ErrorLog ${APACHE_LOG_DIR}/iamahhyun-error.log
CustomLog ${APACHE_LOG_DIR}/iamahhyun-access.log combined
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>
3. HTTPS 인증서 발급 및 적용하기
Let's Encrypt의 Certbot을 사용하여 무료 SSL 인증서를 발급받는 명령어는 다음과 같다.
certbot certonly --webroot --webroot-path=/home/iamahhyun/www -d iamahhyun.ip주소.nip.io
해당 도메인을 보유한 경우 인증서가 발급되고, 아래 경로에 저장된다:
/etc/letsencrypt/live/도메인명/cert.pem
/etc/letsencrypt/live/도메인명/privkey.pem
/etc/letsencrypt/live/도메인명/chain.pem
현재 실습에서는 도메인이 실제 소유되지 않아 오류가 발생했지만, 도메인 기반 인증서 발급 흐름을 이해하는 데 의미 있는 과정이었다.
4. phpMyAdmin 최고 관리자 설정하기
마지막으로 phpMyAdmin을 통해 MySQL 데이터베이스에 접근할 수 있는 최고 관리자 계정을 설정하였다.
- 아이디 : root
- 비밀번호 : 직접 설정한 강력한 비밀번호
이 계정은 모든 데이터베이스를 관리할 수 있으므로, 비밀번호 설정 시 보안에 특히 유의하였다.
5. 마무리
총 5편에 걸쳐 리눅스 서버를 구축하고, 웹 서버 및 데이터베이스 서버를 완성도 높게 구성해보았다.
이번 마지막 프로젝트에서는 실제 서비스 환경을 모방하여 도메인 기반 가상호스트 구성, SSL 인증서 적용, 서버 최적화 설정등을 해보면서 의미 있는 경험을 쌓을 수 있었다.
이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.
모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.
'리눅스 서버 구축' 카테고리의 다른 글
리눅스 Application 네트워크 서버 - Samba 설정 및 사용자 공유 실습 (0) | 2025.05.25 |
---|---|
리눅스 시스템 관리 실습 - 사용자, 패키지, 서비스, 방화벽 관리 (4) | 2025.05.24 |
리눅스 서버 구축 실습 - 4편 - phpMyAdmin 설치와 보안 설정 (2) | 2025.05.23 |
리눅스 서버 구축 실습 - 3편 - PHP 모듈 설치 및 보안 설정, phpinfo 조건부 출력 (0) | 2025.05.23 |
리눅스 서버 구축 실습 - 2편 - Apache 보안 설정 강화 및 SSL 활성화 (4) | 2025.05.22 |