Server & Network/Linux
[Apache] 설정 검사(configtest) 및 활성화(a2enmod) - rewrite, ssl, proxy
AustinProd
2022. 6. 26. 16:26
아파치 설정 검사
설정 파일의 문법을 검사한다. 실행 시 발생할 수 있는 문법적 에러를 테스트할 수 있게 도와주는 명령어다. 설정 파일(.conf)을 변경하고, 적용하기 전 단계에서 유효성을 미리 검증받을 수 있다.
# 아파치 설정 검사
apachectl configtest
# 에러 발생 포인트가 없다면 OK 반환
> Syntax OK
아파치 설정 활성화
아파치 설정 파일에는 여러 옵션을 넣을 수 있다.
- 특정 Host, IP, URL에 따른 리다이렉트 옵션을 지정하는 rewrite
- HTTPS 프로토콜을 위한 인증서 옵션을 지정하는 ssl
- 다른 내부 네트워크와 연동을 위한 proxy
중요한 점은 Ubuntu 기준, apache를 처음 설치했을 때, 위 옵션이 자동으로 활성화(enabled)되지 않는다는 사실이다. apache 설정을 주입하는 000-default.conf 파일에 필요한 옵션을 입력했다면 아래 명령어로 해당 옵션을 활성화시켜주는 작업이 필요하다.
# 접근 IP, HOST, URL 유형에 따른 리다이렉트 설정
sudo a2enmod rewrite
# HTTPS 설정
sudo a2enmod ssl
# 내부 네트워크에 프록시 설정
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
아파치 설정 적용
아래 코드들은 rewrite, ssl, proxy 에 대한 예시 코드들이다. Ubuntu 기준, 000-default.conf 파일에서 작업을 했으니 참고 바란다.
Rewrite 옵션
<VirtualHost *:80>
...
# 리다이렉트 옵션
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !192.168.0.123 # 요청 IP가 입력한 값과 동일한 경우
RewriteRule .* http://google.com # 구글로 리다이렉트
</VirtualHost>
SSL 옵션
<VirtualHost *:443>
# 인증서 도메인
ServerName "인증서가 지원하는 도메인"
# 옵션 적용 유무
SSLEngine on
# SSL 프로토콜
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 (서버 환경에 따라서 선택적 적용)
# 인증서 관련 파일
SSLCertificateKeyFile /인증서파일경로/개인키
SSLCertificateFile /인증서파일경로/서버인증서
SSLCACertificateFile /인증서파일경로/루트,체인 통합 파일
</VirtualHost>
Proxy 옵션
<VirtualHost *:80>
...
ProxyRequests Off
ProxyPass /assets !
ProxyPass /api http://172.26.0.1:18080/api
ProxyPass / http://127.0.0.1:28080/
ProxyPassReverse / http://127.0.0.1:28080/
</VirtualHost *:80>