
在香港 VPS 服务器上部署 Python Django 应用是一项常见的任务,它涉及环境配置、代码部署、数据库设置以及应用的启动与管理。
1. 环境准备
1.1 更新服务器系统
在部署之前,确保服务器操作系统是最新的。
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS
sudo yum update -y
1.2 安装必要工具
安装 Python、pip 和其他开发工具。
# Ubuntu/Debian
sudo apt install python3 python3-pip python3-venv build-essential libpq-dev -y
# CentOS
sudo yum install python3 python3-pip python3-virtualenv gcc gcc-c++ make libpq-devel -y
1.3 安装 Web 服务器
通常选择 Nginx 或 Apache 作为反向代理服务器。
# Ubuntu/Debian
sudo apt install nginx -y
# CentOS
sudo yum install nginx -y
2. 配置 Django 应用
2.1 上传项目文件
通过 SFTP、scp
或 Git 将 Django 项目代码上传到服务器。例如:
scp -r /path/to/your/django/project user@your_server_ip:/var/www/
假设项目路径为 /var/www/myproject/
。
2.2 创建 Python 虚拟环境
在项目目录中创建虚拟环境并激活它:
cd /var/www/myproject/
python3 -m venv venv
source venv/bin/activate
2.3 安装依赖
使用 pip
安装项目所需的依赖(通常在 requirements.txt
文件中)。
pip install -r requirements.txt
2.4 配置 Django 设置
-
更新
settings.py
文件:- 调试模式:
python
DEBUG = False
- 允许的主机:
python
ALLOWED_HOSTS = ['your_server_ip', 'your_domain']
- 调试模式:
-
静态文件目录:
如果项目使用静态文件,确保配置正确的路径:pythonSTATIC_ROOT = '/var/www/myproject/static/'
-
生成静态文件:
bashpython manage.py collectstatic
2.5 数据库配置
安装数据库
如果使用 PostgreSQL:
# Ubuntu/Debian
sudo apt install postgresql postgresql-contrib -y
# CentOS
sudo yum install postgresql-server postgresql-contrib -y
创建数据库和用户
-
切换到 PostgreSQL 用户:
bashsudo -u postgres psql
-
创建数据库和用户:
sqlCREATE DATABASE myproject; CREATE USER myprojectuser WITH PASSWORD 'your_password'; ALTER ROLE myprojectuser SET client_encoding TO 'utf8'; ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed'; ALTER ROLE myprojectuser SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser; \q
-
更新
settings.py
配置:pythonDATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'myproject', 'USER': 'myprojectuser', 'PASSWORD': 'your_password', 'HOST': 'localhost', 'PORT': '5432', } }
-
运行迁移:
bashpython manage.py migrate
3. 配置 Gunicorn
Gunicorn 是一个常用的 WSGI 服务器,用于运行 Django 应用。
3.1 安装 Gunicorn
在虚拟环境中安装 Gunicorn:
pip install gunicorn
3.2 测试 Gunicorn
运行以下命令以测试 Gunicorn 是否能正常启动应用:
gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
如果显示应用启动信息且可以通过浏览器访问,则说明 Gunicorn 配置正常。
4. 配置 Nginx
Nginx 通常用作反向代理,将客户端请求转发给 Gunicorn。
4.1 配置 Nginx 文件
创建 Nginx 配置文件,例如 /etc/nginx/sites-available/myproject
:
server {
listen 80;
server_name your_domain_or_ip;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /var/www/myproject;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
4.2 启用配置
-
创建软链接:
bashsudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
-
测试 Nginx 配置:
bashsudo nginx -t
-
重启 Nginx:
bashsudo systemctl restart nginx
5. 配置 Supervisor(可选)
Supervisor 用于管理 Gunicorn 进程,确保其在服务器重启后自动启动。
5.1 安装 Supervisor
# Ubuntu/Debian
sudo apt install supervisor -y
# CentOS
sudo yum install supervisor -y
5.2 配置 Gunicorn 服务
创建 Supervisor 配置文件,例如 /etc/supervisor/conf.d/myproject.conf
:
[program:myproject]
command=/var/www/myproject/venv/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 myproject.wsgi:application
directory=/var/www/myproject
user=www-data
autostart=true
autorestart=true
stderr_logfile=/var/log/myproject.err.log
stdout_logfile=/var/log/myproject.out.log
5.3 启用 Supervisor
-
更新 Supervisor 配置:
bashsudo supervisorctl reread sudo supervisorctl update
-
启动 Gunicorn:
bashsudo supervisorctl start myproject
6. HTTPS 配置(可选但推荐)
为安全起见,建议为应用配置 HTTPS。可以使用免费工具 Certbot 配置 SSL。
6.1 安装 Certbot
# Ubuntu/Debian
sudo apt install certbot python3-certbot-nginx -y
# CentOS
sudo yum install certbot python3-certbot-nginx -y
6.2 获取 SSL 证书
sudo certbot --nginx -d your_domain
6.3 自动续期
Certbot 会自动续期证书,但可以通过以下命令测试:
sudo certbot renew --dry-run
7. 测试与优化
7.1 测试应用
- 通过域名或 IP 访问应用,确认其能正常运行。
- 检查静态文件是否加载正常。
7.2 性能优化
-
启用 Gzip 压缩(在 Nginx 中配置):
nginxgzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
-
调整 Gunicorn 工作进程:
根据香港VPS服务器的 CPU 核心数设置 Gunicorn 的工作进程数量:bashgunicorn --workers 4 --bind 0.0.0.0:8000 myproject.wsgi:application
8. 总结
步骤 | 操作 |
---|---|
环境准备 | 安装 Python、pip、Nginx、数据库等依赖。 |
配置 Django | 上传项目、创建虚拟环境、安装依赖、配置数据库、收集静态文件。 |
运行 Gunicorn | 测试运行 Django 应用。 |
配置 Nginx | 设置反向代理,处理静态文件和客户端请求转发。 |
自动化管理 | 使用 Supervisor 管理 Gunicorn。 |
启用 HTTPS | 使用 Certbot 配置 SSL 证书,提升安全性。 |
通过以上步骤,您可以在香港VPS服务器上成功部署 Django 应用,确保其高效、安全地运行。
- Tags:
- 香港VPS服务器,VPS服务器,香港VPS