Apache2 설정¶
Ubuntu 22.04 에서 apache2 를 설치했을때의 기준으로 설명합니다.
/etc/apache2/sites-enabled 로 이동후 your-domain.conf 로 아래와 같은 내용의 파일을 만듭니다. (설정 파일의 확장자를 .conf로 해야 동작합니다.)
your-domain.conf
<VirtualHost *:80>
ServerName your-domain.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Real-IP expr=%{REMOTE_ADDR}
RequestHeader set X-Forwarded-For expr=%{REMOTE_ADDR}
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Let's Encrypt SSL을 적용하기 위해 apache용 certbot 을 설치합니다.
certbot 설치
sudo apt install snapd
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot을 사용하여 SSL 인증서를 획득합니다. 이 과정에서는 도메인 소유권을 증명해야 합니다.
/etc/apache2/sites-enabled/your-domain.conf 파일의 내용이 아래와 비슷하게 수정되었는지 확인합니다.
수정된 your-domain.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName www.your-domain.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Real-IP expr=%{REMOTE_ADDR}
RequestHeader set X-Forwarded-For expr=%{REMOTE_ADDR}
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/apache2.gnupy.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/apache2.gnupy.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
apache2에 mod_proxy와 mod_proxy_http 모듈이 필요합니다. 이 모듈들은 일반적으로 기본적으로 설치되어 있지만, 활성화되어 있지 않을 수 있습니다.