一、部署准备
1.云服务器与域名
云服务器要配置好端口:
步骤如下:
- 进入阿里云服务器安全组规则
- 如图编辑:
域名与云服务器公网IP相链接:
步骤如下: - 来到服务器管理处,记住你的外网ip。
- 来到域名控制台,点击你的域名,点击新手引导,输入你的ip
2.xftp连接阿里云服务器(详情查看本文)
3.可以在本地运行的django项目(最好有相关依赖的文件:requirements.txt)
二、Ubuntu配置
1.用户
- 新建用户
- 把新创建的用户加入超级权限组
- 为新用户设置密码
注意在输密码的时候不会有字符显示,不要以为键盘坏了,正常输入即可 - 切换到创建的新用户
ubuntu命令参考文章
2.更新系统
sudo apt-get update
sudo apt-get upgrade
3.安装应用
- nginx
sudo apt-get install nginx
- mysql(如果django项目使用的是mysql数据库)
- python3 、pip、 virtualenv、pymysql、gunicorn、项目依赖包
sudo apt-get install git python3 python3-pip
三、启动nginx
sudo service nginx start
- 配置nginx
在/etc/nginx/conf.d文件夹下,创建域名.conf文件
sudo vim 域名.conf
:!wq #管理员权限保存
文件内容如下
server {
charset utf-8;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
root *******; #配置虚拟环境的目录
access_log *******/access_log.log; #配置这个log文件夹,在manage.py同目录下创建log文件夹,在log文件夹下创建.log文件
error_log ********/error_log.log; #配置这个log文件夹,同上
listen 80;
listen 443 ssl;
server_name *******;#填域名
location /static {
# 文件目录
alias ********;#项目static文件目录
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
##此处为支持https协议,若是http可不用
server {
listen 80;
server_name *******;#填域名
return 301 https://$host$request_uri;
}
- 配置上述文件时注意:分号;的应用,有时忘记加会导致nginx启动出错
四、配置django项目
基本部署,如superuser ,mysql,等命令不再赘述,以下只阐述重要的,需修改的细节
1.修改setting.py
DEBUG = False
ALLOWED_HOSTS = ['*'] #此处改为域名和公网ip
########-------#######
STATIC_URL = '/static/'
# 加入下面的配置
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
2.安装依赖包
如果在上一步骤完成,此处不必了
五、激活网站
1.配置数据库
python3 manage.py migrate
2.superuser
python3 manage.py createsuperuser
3.收集静态文件
python3 manage.py collectstatic
4.启动网站
gunicorn xxxx.wsgi:application -w 4 -b 0.0.0.0:8001
# xxxx为项目名
至此,网站基本部署完毕。
(本人也处于探索阶段,有问题望指出,共同探讨)
参考文章,及其他部署方式,其中的问题如下:
1. nginx+gunicorn
2. nginx+uwsgi
3.nginx+uwsgi