在Linux服务器上使用Nginx + uWSGI部署Django项目的步骤如下:
1. 登录服务器
- 使用SSH登录:
- 打开终端,使用SSH登录到服务器。
ssh username@your_server_ip
2. 更新系统包
- 更新包列表:
- 更新系统的包列表。
sudo apt-get update
- 升级已安装的包:
- 升级已安装的包到最新版本。
sudo apt-get upgrade
3. 安装Python和Pip
- 安装Python:
- 安装Python 3和pip。
sudo apt-get install python3 python3-pip
4. 安装并配置虚拟环境
- 安装virtualenv:
- 安装
virtualenv
工具来创建虚拟环境。
sudo pip3 install virtualenv
- 安装
- 创建虚拟环境:
- 在项目目录中创建虚拟环境。
mkdir ~/myproject cd ~/myproject virtualenv myprojectenv
- 激活虚拟环境:
- 激活虚拟环境。
source myprojectenv/bin/activate
5. 安装Django和uWSGI
- 安装Django:
- 在虚拟环境中安装Django。
pip install django
- 安装uWSGI:
- 安装uWSGI。
pip install uwsgi
6. 创建Django项目
- 创建Django项目:
- 在项目目录中创建Django项目。
django-admin startproject myproject .
- 迁移数据库:
- 迁移数据库。
python manage.py migrate
- 创建超级用户:
- 创建Django超级用户。
python manage.py createsuperuser
7. 配置uWSGI
- 创建uWSGI配置文件:
- 创建uWSGI配置文件。
nano ~/myproject/myproject_uwsgi.ini
- 添加配置内容:
- 在文件中添加以下内容。
[uwsgi] project = myproject base = /home/username/myproject chdir = %(base) home = %(base)/myprojectenv module = %(project).wsgi:application master = true processes = 5 socket = %(base)/%(project).sock chmod-socket = 660 vacuum = true
8. 安装并配置Nginx
- 安装Nginx:
- 安装Nginx。
sudo apt-get install nginx
- 创建Nginx配置文件:
- 创建Nginx配置文件。
sudo nano /etc/nginx/sites-available/myproject
- 添加配置内容:
- 在文件中添加以下内容。
server { listen 80; server_name your_domain_or_ip; location / { include uwsgi_params; uwsgi_pass unix:/home/username/myproject/myproject.sock; } location /static/ { alias /home/username/myproject/static/; } location /media/ { alias /home/username/myproject/media/; } }
- 启用Nginx配置文件:
- 启用Nginx配置文件并禁用默认配置。
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/ sudo rm /etc/nginx/sites-enabled/default
- 测试Nginx配置:
- 测试Nginx配置是否正确。
sudo nginx -t
- 重启Nginx服务:
- 重启Nginx服务以使配置生效。
sudo systemctl restart nginx
9. 启动uWSGI
- 启动uWSGI:
- 使用uWSGI配置文件启动uWSGI。
uwsgi --ini ~/myproject/myproject_uwsgi.ini
10. 配置防火墙(可选)
- 开放HTTP和HTTPS端口:
- 如果使用防火墙,需要开放HTTP(80)和HTTPS(443)端口。
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload
11. 设置SSL证书(可选)
- 安装Certbot:
- 安装Certbot以获取免费的Let’s Encrypt SSL证书。
sudo apt-get install certbot python3-certbot-nginx
- 获取SSL证书:
- 获取并配置SSL证书。
sudo certbot --nginx -d your_domain
- 自动续期:
- 设置Certbot自动续期SSL证书。
sudo certbot renew --dry-run
12. 访问Django项目
- 访问项目:
- 打开浏览器,访问
http://your_domain_or_ip
,查看Django项目是否正常运行。
- 打开浏览器,访问
总结
在Linux服务器上使用Nginx + uWSGI部署Django项目的步骤包括登录服务器、更新系统包、安装Python和Pip、安装并配置虚拟环境、安装Django和uWSGI、创建Django项目、配置uWSGI、安装并配置Nginx、启动uWSGI、配置防火墙(可选)、设置SSL证书(可选)以及访问Django项目。通过这些步骤,您可以在Linux服务器上成功部署Django项目。