Skip to content

Apache2 설정

Ubuntu 22.04 에서 apache2 를 설치했을때의 기준으로 설명합니다.

apache2 설치
sudo apt update
sudo apt upgrade
sudo apt install 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 인증서를 획득합니다. 이 과정에서는 도메인 소유권을 증명해야 합니다.

sudo certbot --apache -d your-domain.com -d www.your-domain.com


/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 모듈이 필요합니다. 이 모듈들은 일반적으로 기본적으로 설치되어 있지만, 활성화되어 있지 않을 수 있습니다.

shell 명령
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
sudo systemctl restart apache2