阿里云ECS服务器部署django的方法


Posted in Python onAugust 29, 2019

参考

服务器安装的是Centos 系统。

uwsgi是使用pip安装的。

nginx是使用yum install nginx安装。

python 2.7, mysql 5.5使用 yum安装。

它们之间的逻辑关系如下:

the web client <-> the web server <-> the socket <-> uwsgi <-> Django

uswgi负责从Django拿内容,通过socket传给 web server如nginx, 最后显示到 网页浏览器。

在django的项目下,建文件 uswgi.ini,可以不用在uswgi后面写一串选项。

# uwsgi.ini file
[uwsgi]
 
# Django-related settings
# the base directory (full path)
chdir   = /var/www/html/
# Django's wsgi file
module   = app.wsgi:application
# process-related settings
# master
master   = true
# maximum number of worker processes
processes  = 10
# the socket (use the full path to be safe
#socket   = 127.0.0.1:8001
socket = /tmp/site.sock
# ... with appropriate permissions - may be needed
chmod-socket = 666
# clear environment on exit
vacuum   = true
process = 4
threads = 2

# Django's wsgi file这个对应你自己Django项目的就好。 chdir就是Django的所在目录,和manage.py同一目录。

其他可以默认。

同样建立nginx.conf

# nginx.conf
 
# the upstream component nginx needs to connect to
upstream django {
 server unix:///tmp/site.sock; # for a file socket
 #server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}
 
# configuration of the server
server {
 # the port your site will be served on
 listen  80;
 # the domain name it will serve for
 server_name demo.mmm.com; # substitute your machine's IP address or FQDN
 charset  utf-8;
 
 # max upload size
 client_max_body_size 128M; # adjust to taste
 
 # Django media
 location /media {
  alias /var/www/html/media; # your Django project's media files - amend as required
 }
 
 location /static {
  alias /var/www/html/static; # your Django project's static files - amend as required
 }
 
 # Finally, send all non-media requests to the Django server.
 location / {
  uwsgi_pass django;
  include  /var/www/html/uwsgi_params; # the uwsgi_params file you installed
 }
}

uwsgi_pass django; 中的django和upstream django 相对应。

两头的socket名字要一样。uwsgi里要改sock的权限为666,默认的664,nginx会连不上,在/var/log/nginx/error.log里可以看到connect is denied。

据说使用socket比端口要好,注意unix://这个前缀,加上后面sock的路径,是3个///,看起来不好看。

无论使用socket还是TCP端口,uwsgi的socket和nginx的server值要对应,否则没法接通路径。

server_name demo.mmm.com; 看文章时,把server_name这个词看成域名,给修改掉,结果nginx启动失败。可以用域名或者IP。

ln -s /var/www/html/nginx.conf /etc/nginx/conf.d/

链接后,这样在conf.d 配置目录里会有Django下建立的nginx.conf,比较方便。

uwsgi_params文件在/etc/nginx下面有,老外说是拷贝到Django目录下,不知道直接使用会有什么区别。

最后:

使用chkconfig nginx on 把nginx设置成自启动服务。

在/etc/rc.local里加一行 uwsgi /var/www/html/uwsgi.ini --uid www --gid www

我没加uid和gid,以root运行uwsgi会被警告的。

原来是打算用apache的,所以有个/var/www/html目录。mod-python报错后,不知道怎么处理。

系统自带Python2.6,mod-python就是调用的2.6。

nginx不能从uwsgi获得数据时,就会输出nginx的默认页面。还会输出 Bad Gateway提示。

linux最大的麻烦是,程序和配置文件分散,装好一个程序,都不知道它在哪里。

以上这篇阿里云ECS服务器部署django的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
Mar 20 Python
利用python爬取散文网的文章实例教程
Jun 18 Python
详解django三种文件下载方式
Apr 06 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
Jun 11 Python
python使用matplotlib绘制热图
Nov 07 Python
Python学习笔记之视频人脸检测识别实例教程
Mar 06 Python
Python爬虫:url中带字典列表参数的编码转换方法
Aug 21 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
Python3 虚拟开发环境搭建过程(图文详解)
Jan 06 Python
python实现俄罗斯方块游戏(改进版)
Mar 13 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
树莓派3 搭建 django 服务器的实例
Aug 29 #Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 #Python
Python处理session的方法整理
Aug 29 #Python
django自带调试服务器的使用详解
Aug 29 #Python
Python中的相关分析correlation analysis的实现
Aug 29 #Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 #Python
python 计算两个列表的相关系数的实现
Aug 29 #Python
You might like
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
[10:21]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster 选手采访
2021/03/11 DOTA
Python制作CSDN免积分下载器
2015/03/10 Python
python目录与文件名操作例子
2016/08/28 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
python使用tcp实现局域网内文件传输
2020/03/20 Python
Python实现12306火车票抢票系统
2019/07/04 Python
python根据多个文件名批量查找文件
2019/08/13 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
《东方明珠》教学反思
2014/04/20 职场文书
安全生产计划书
2014/05/04 职场文书
关于环保的活动方案
2014/08/25 职场文书
超市店庆活动方案
2014/08/31 职场文书
西安导游词
2015/02/12 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
Python first-order-model实现让照片动起来
2022/06/25 Python