服务器设置和教程 · 9 10 月, 2024

Ubuntu 下通過 Nginx 部署 Django

Ubuntu 下通過 Nginx 部署 Django

Django 是一個高效能的 Python 網頁框架,廣泛用於開發各種 web 應用程式。將 Django 部署在 Ubuntu 系統上,並使用 Nginx 作為反向代理伺服器,可以提高應用的性能和安全性。本文將詳細介紹如何在 Ubuntu 環境中通過 Nginx 部署 Django 應用。

前期準備

在開始之前,請確保您已經安裝了以下軟體:

  • Ubuntu 伺服器
  • Python 3
  • Pip
  • Virtualenv
  • Nginx

您可以通過以下命令安裝 Nginx:

sudo apt update
sudo apt install nginx

安裝 Django

首先,您需要創建一個虛擬環境來安裝 Django。這樣可以避免與系統其他 Python 包的衝突。

sudo apt install python3-venv
mkdir myproject
cd myproject
python3 -m venv venv
source venv/bin/activate
pip install django

接下來,您可以創建一個新的 Django 專案:

django-admin startproject myproject

配置 Django

在 Django 專案中,您需要修改 `settings.py` 文件,以便允許來自 Nginx 的請求。找到 `ALLOWED_HOSTS` 並添加您的域名或 IP 地址:

ALLOWED_HOSTS = ['your_domain.com', 'your_server_ip']

運行 Django 開發伺服器

在開發過程中,您可以使用 Django 自帶的開發伺服器來測試應用:

python manage.py runserver 0.0.0.0:8000

這樣,您的 Django 應用就可以通過 `http://your_server_ip:8000` 訪問了。

使用 Gunicorn 作為 WSGI 伺服器

為了在生產環境中運行 Django,建議使用 Gunicorn 作為 WSGI 伺服器。您可以通過以下命令安裝 Gunicorn:

pip install gunicorn

然後,您可以使用以下命令啟動 Gunicorn:

gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application

配置 Nginx

接下來,您需要配置 Nginx 以反向代理到 Gunicorn。創建一個新的 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/myproject

在文件中添加以下內容:

server {
    listen 80;
    server_name your_domain.com your_server_ip;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /path/to/your/static/files;
    }

    location / {
        include proxy_params;
        proxy_pass http://127.0.0.1:8000;
    }
}

保存並退出編輯器,然後啟用配置:

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled

檢查 Nginx 配置是否正確:

sudo nginx -t

如果沒有錯誤,重新啟動 Nginx:

sudo systemctl restart nginx

總結

通過以上步驟,您已經成功在 Ubuntu 上通過 Nginx 部署了 Django 應用。這種配置不僅提高了應用的性能,還增強了安全性。若您需要進一步的支持或尋找合適的伺服器解決方案,請考慮使用 香港伺服器 來滿足您的需求。