Djanngo项目部署到服务器
#开发
2025-06-07
Djanngo项目部署到服务器
virtualenv虚拟机
安装命令
1 | sudo apt install python3-virtualenv |
创建虚拟机
1 | virtualenv env |
注:env是虚拟机名
启动虚拟机
1 | source env/bin/activate |
安装需要python包,如Django
1 | pip install django |
运行python项目
使用git把包传进服务器
进入项目目录启动django
1 | python manage.py runserver |
或
1 | python manage.py runserver 0.0.0.0:8000 |
把静态文件放到指定目录
如 /home/static
注:不建议放root目录下,可能没权限访问
项目setting.py里设置
1 | STATIC_URL = '/static/' |
然后收集静态资源文件
1 | python manage.py collectstatic |
安装和配置nginx
安装命令
1 | sudo apt install nginx |
nginx目录/etc/nginx
1 | cd /etc/nginx |
进入sites-enabled目录
1 | cd /etc/nginx/sites-enabled |
里面的default文件
1 | ## |
不管它,直接删除
1 | rm default |
新建一个配置文件
1 | vim cf.conf |
添加到文件里 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18server {
server_name www.com; #这里改为你的域名
# 新添加的静态文件处理块
location /static/ {
alias /home/static/; # 替换为您的STATIC_ROOT路径
expires 30d;
access_log on;
add_header Cache-Control "public";
}
location / {
include proxy_params;
proxy_pass http://127.0.0.1:8000;
}
}
保存好文件
1 | sudo nginx -t |
重载nginx
1 | sudo systemctl reload nginx |
开启80和443端口
1 | sudo ufw allow 80/tcp |
安装SSL证书并启用HTTPS
1. 安装Certbot和Nginx插件
1 | sudo apt install certbot python3-certbot-nginx |
2. 获取SSL证书
1 | sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com |
(将yourdomain.com替换为你的实际域名)
3. 自动续期测试
1 | sudo certbot renew --dry-run |
4. 修改Nginx配置自动重定向HTTP到HTTPS
在之前的nginx配置中添加:
1 | server { |
5. 重启Nginx使配置生效
1 | sudo systemctl restart nginx |
这样就完成了HTTPS的配置,Certbot会自动处理证书续期问题。
注意:在执行这些命令前,请确保:
- 域名已解析到服务器IP
- 80和443端口已开放
- Nginx配置中的server_name与域名一致