Django部署ECS实战
准备好ecs服务器,本地部署主机为windows系统。
本地安装好WinSCP和SecureCRT,并配置ecs服务器登录。
用WinSCP登录ecs后,在根目录新建文件夹 Django,文件夹自动给与777权限。
将django项目整个拖入文件夹,该项目名称为qa_server。
使用SecureCRT登录ecs,命令行输入
python
发现python版本为3.6,知道后面会有一堆麻烦了。
命令行输入
/usr/bin
再次输入
ls *python*
看了下里面的命令,发现有个python2和python2.7
根据https://www.runoob.com/django/django-nginx-uwsgi.html教程,使用yum安装开发工具
yum groupinstall "Development tools"
发现yum是用python2.x的语法写的,有两个选择,一个是把里面2.x的语法修改成3.x,一个是把文件最上面指定的的python版本进行修改
#!/usr/bin/python ---->> #!/usr/bin/python2.7
再次安装
yum groupinstall "Development tools"
发现里面有一个命令也和yum一样有问题,如法炮制,顺利安装开发工具。
命令行输入:
pip
发现pip和yum一样有python版本问题,但是pip我选择将之语法修改,这样它就是pip3
pip install uwsgi
uwsgi --version
顺利安装
进入项目目录,到setting.py文件同级目录,新建uwsgi.ini
编辑ini文件,写入内容如下:
[uwsgi]
# 配置服务器的监听ip和端口,让uWSGI作为nginx的支持服务器的话,设置socke就行;如果要让uWSGI作为单独的web-server,用http
http = 127.0.0.1:3309
#socket = 127.0.0.1:3309
# 配置项目目录(此处设置为项目的根目录)
chdir = /Django/qa_server
# 配置入口模块 (django的入口函数的模块,即setting同级目录下的wsgi.py)
wsgi-file = /Django/qa_server/qa_server/wsgi.py
# 开启master, 将会多开一个管理进程, 管理其他服务进程
master = true
# 服务器开启的进程数量
workers = 2
# 以守护进程方式提供服, 输出信息将会打印到log中
daemonize = wsgi.log
# 服务器进程开启的线程数量
threads = 4
# 退出的时候清空环境变量
vacuum = true
# 进程pid
pidfile = uwsgi.pid
# 配uWSGI搜索静态文件目录(及django项目下我们存放static文件的目录,用uWSGI作为单独服务器时才需要设置,此时我们是用nginx处理静态文件)
# check-static = /home/python/Desktop/ttsx
保存退出,命令行输入:
vi /etc/nginx/conf.d/default.conf
修改80接口监听服务器配置:
location / {
include uwsgi_params;
proxy_pass http://127.0.0.1:3309;
}
保存退出
nginx -t
nginx -s reload
重启nginx
进入 项目目录,使用debug模式启动django项目
python manage.py runserver 0.0.0.0:3309
回车后,发现没有安装django
pip install django
再次运行,发现有个地方认为我们的mysqlclient版本太低,修改报错的地方,将之注释
再次运行,发现有个地方说没有decode属性,将之修改为encode(如前面的博文)
再次运行,正常启动
另开命令行,输入:
0.0.0.0:3309
报以下问题:
Invalid HTTP_HOST header: '0.0.0.0:1000'. You may need to add '0.0.0.0' to ALLOWED_HOSTS.
修改setting.py
ALLOWED_HOSTS = ['*']
再次调用
0.0.0.0:3309
报404,那应该是路由问题
0.0.0.0:3309/admin
这时候就正常了,关闭debug服务器
进入到uwsgi.ini的目录,命令行
uwsgi --ini uwsgi.ini
浏览器输入
http://ecsip/admin
可看到后台登录页面,说明部署成功。
更多推荐



所有评论(0)