[파이썬][Django] 웹 서버 설정 방법과 예제

웹 서버 (예: Apache 또는 Nginx)를 설정하는 방법과 예제를 제공하겠습니다. 아래에는 각각의 웹 서버에 대한 기본 설정 방법과 예제가 포함되어 있습니다.

Apache 웹 서버 설정 (mod_wsgi 사용)

  1. Apache 및 mod_wsgi 설치:

    먼저 Apache 웹 서버와 mod_wsgi 모듈을 설치합니다.

sudo apt-get install apache2 libapache2-mod-wsgi-py3
  1. 가상 호스트 설정:

    Apache의 가상 호스트 설정 파일을 만들어서 Django 애플리케이션과 연결합니다. 예를 들어, /etc/apache2/sites-available/myapp.conf 파일을 만들고 다음과 같이 설정합니다:

    apache```

<VirtualHost *:80> ServerAdmin webmaster@myapp.com ServerName myapp.com DocumentRoot /path/to/your/django/project

    WSGIDaemonProcess myapp python-home=/path/to/your/venv python-path=/path/to/your/django/project
    WSGIProcessGroup myapp
    WSGIScriptAlias / /path/to/your/django/project/myapp/wsgi.py

    <Directory /path/to/your/django/project>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost> ```
위에서 `/path/to/your/django/project`와 `/path/to/your/venv`를 Django 프로젝트와 가상 환경의 경로로 바꿉니다.
  1. 가상 호스트 활성화 및 Apache 재시작:

    가상 호스트를 활성화하고 Apache를 재시작합니다.

sudo a2ensite myapp.conf
    sudo systemctl restart apache2

Nginx 웹 서버 설정 (uWSGI 사용)

  1. Nginx 및 uWSGI 설치:

    Nginx 웹 서버와 uWSGI 애플리케이션 서버를 설치합니다.

sudo apt-get install nginx uwsgi uwsgi-plugin-python3
  1. Nginx 가상 호스트 설정:

    Nginx의 가상 호스트 설정 파일을 만들고 다음과 같이 설정합니다. 예를 들어, /etc/nginx/sites-available/myapp 파일을 만들고 다음과 같이 설정합니다:

    nginx``` server { listen 80; server_name myapp.com www.myapp.com;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /path/to/your/django/project;
    }
    
    location / {
        include uwsgi_params;
        uwsgi_pass unix:/path/to/your/django/project/myapp.sock;
    }
    
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    } } ``` 위에서 `/path/to/your/django/project`를 Django 프로젝트의 경로로 바꿉니다.
    
  2. 심볼릭 링크 생성 및 Nginx 재시작:

    가상 호스트 설정 파일을 /etc/nginx/sites-enabled 디렉토리로 심볼릭 링크를 생성하고 Nginx를 재시작합니다.

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
    sudo systemctl restart nginx

이제 Apache 또는 Nginx를 사용하여 Django 애플리케이션을 호스팅하는 방법을 알게 되었습니다. 애플리케이션과 서버 구성에 따라 설정 내용을 조정해야 할 수 있습니다.