← 모두의 툴
Dev · Instrument

아파치 설정 생성기

Apache VirtualHost 설정 파일 생성

설정
www 포함
ServerAlias에 www.도메인 추가
SSL / HTTPS
VirtualHost *:443 블록 추가
PHP 활성화
PHP 처리 설정 추가
액세스/에러 로그
CustomLog 및 ErrorLog 설정 추가
ProxyPass
역방향 프록시 설정 추가
GZIP (mod_deflate)
mod_deflate 압축 설정 추가
보안 헤더
Header always set 보안 설정 추가
캐싱 (ExpiresActive)
mod_expires 캐시 헤더 추가
apache.conf 미리보기

Apache VirtualHost란?

Apache VirtualHost는 하나의 웹서버에서 여러 도메인을 독립적으로 호스팅할 수 있게 해주는 설정 블록입니다. 각 VirtualHost는 독립적인 DocumentRoot, 로그 파일, SSL 인증서, 접근 제어를 가질 수 있으며, /etc/apache2/sites-available/ 디렉토리에 도메인별 파일로 관리합니다.

자주 묻는 질문

Q. mod_rewrite를 활성화하는 방법은?

A. sudo a2enmod rewrite 명령어를 실행하고 Apache를 재시작합니다. VirtualHost 설정에서 AllowOverride All이 되어 있어야 .htaccess의 RewriteRule이 동작합니다.

Q. SSL 인증서 설정 방법은?

A. Let's Encrypt 사용 시 sudo certbot --apache -d example.com으로 자동 설정됩니다. 수동으로는 SSLCertificateFile과 SSLCertificateKeyFile 경로를 지정하고 sudo a2enmod ssl을 실행하세요.

Q. AllowOverride All의 의미는?

A. .htaccess 파일이 서버 설정을 재정의할 수 있도록 허용합니다. 개발 환경에서는 All, 프로덕션에서는 필요한 지시어만 허용하는 것이 보안상 좋습니다. None으로 설정하면 .htaccess가 완전히 무시됩니다.

Q. .htaccess vs VirtualHost 중 어느 것을 사용해야 하나요?

A. 가능하면 VirtualHost에 설정을 넣는 것이 성능상 유리합니다. .htaccess는 요청마다 파일을 읽지만 VirtualHost 설정은 서버 시작 시 한 번만 읽힙니다. 서버 설정 파일에 접근할 수 없는 공유 호스팅에서는 .htaccess를 사용합니다.

Q. mod_deflate(GZIP) 설정 방법은?

A. sudo a2enmod deflate로 모듈을 활성화하고 AddOutputFilterByType 또는 SetOutputFilter DEFLATE 지시어를 사용합니다. 압축 전/후 크기를 비교하면 보통 50~70% 절감 효과를 볼 수 있습니다.

Q. ProxyPass 설정 시 필요한 모듈은?

A. sudo a2enmod proxy proxy_http를 실행해 프록시 모듈을 활성화해야 합니다. WebSocket 지원이 필요하면 proxy_wstunnel도 함께 활성화합니다.

Q. Apache 로그 파일 위치는?

A. 기본적으로 /var/log/apache2/ 디렉토리에 access.log와 error.log가 저장됩니다. VirtualHost별로 CustomLog와 ErrorLog 경로를 지정하면 도메인별로 분리된 로그를 관리할 수 있습니다.

Q. 새 VirtualHost 설정을 활성화하는 방법은?

A. sudo a2ensite example.com.conf로 사이트를 활성화하고 sudo systemctl reload apache2로 설정을 적용합니다. sudo apache2ctl configtest로 설정 문법을 미리 검사할 수 있습니다.