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

CentOS 部署 Nginx + uWSGI + Django

CentOS 部署 Nginx + uWSGI + Django

在當今的網絡開發中,Django 是一個非常流行的 Python 網頁框架,因其簡單易用和強大的功能而受到廣泛歡迎。為了有效地部署 Django 應用,Nginx 和 uWSGI 是兩個常用的組件。本文將介紹如何在 CentOS 系統上部署 Nginx、uWSGI 和 Django。

環境準備

在開始之前,確保你的 CentOS 系統已經更新到最新版本。可以使用以下命令進行更新:

sudo yum update -y

接下來,安裝必要的依賴包,包括 Python、pip 和虛擬環境工具:

sudo yum install python3 python3-pip python3-venv -y

安裝 Django

首先,創建一個新的虛擬環境來安裝 Django:

mkdir ~/myproject
cd ~/myproject
python3 -m venv venv
source venv/bin/activate

然後,使用 pip 安裝 Django:

pip install django

接下來,創建一個新的 Django 項目:

django-admin startproject myproject

安裝 uWSGI

在虛擬環境中安裝 uWSGI:

pip install uwsgi

接下來,創建一個 uWSGI 配置文件,命名為 myproject.ini

[uwsgi]
chdir = /home/yourusername/myproject/myproject
module = myproject.wsgi:application
home = /home/yourusername/myproject/venv
master = true
processes = 5
socket = myproject.sock
chmod-socket = 660
vacuum = true
die-on-term = true

安裝 Nginx

使用以下命令安裝 Nginx:

sudo yum install epel-release -y
sudo yum install nginx -y

安裝完成後,啟動 Nginx 並設置為開機自啟:

sudo systemctl start nginx
sudo systemctl enable nginx

配置 Nginx

接下來,創建一個新的 Nginx 配置文件,位於 /etc/nginx/conf.d/myproject.conf

server {
    listen 80;
    server_name your_domain.com;  # 替換為你的域名

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/yourusername/myproject;
    }

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/home/yourusername/myproject/myproject.sock;
    }
}

檢查 Nginx 配置是否正確:

sudo nginx -t

如果沒有錯誤,重新加載 Nginx:

sudo systemctl reload nginx

啟動 uWSGI

最後,啟動 uWSGI 服務:

uwsgi --ini myproject.ini

為了讓 uWSGI 在系統啟動時自動運行,可以考慮使用 systemd 創建一個服務單元文件。

總結

通過以上步驟,我們成功地在 CentOS 上部署了 Nginx、uWSGI 和 Django。這種組合不僅能夠提供高效的性能,還能夠輕鬆地擴展應用。若您需要進一步的支持或尋找合適的 VPS 解決方案,請訪問我們的網站以獲取更多信息。