阿里云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语言编写电脑时间自动同步小工具
Mar 08 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
pytorch 数据集图片显示方法
Jul 26 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
Python3多线程版TCP端口扫描器
Aug 31 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
Python实现TCP通信的示例代码
Sep 09 Python
python中dict()的高级用法实现
Nov 13 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
如何用PyPy让你的Python代码运行得更快
Dec 02 Python
整理Python中常用的conda命令操作
Jun 15 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
PHP引用(&amp;)各种使用方法实例详解
2014/03/20 PHP
php生成图片缩略图的方法
2015/04/07 PHP
PHP使用NuSOAP调用Web服务的方法
2015/07/18 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
JavaScript方法和技巧大全
2006/12/27 Javascript
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
js读写(删除)Cookie实例详解
2013/04/17 Javascript
js中iframe调用父页面的方法
2014/10/30 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
JavaScript实现的浏览器下载文件的方法
2017/08/09 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
Python中的__SLOTS__属性使用示例
2015/02/18 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
大学生水文观测实习自我鉴定
2013/09/29 职场文书
联欢晚会主持词
2014/03/25 职场文书
党员岗位承诺书
2014/03/25 职场文书
学生安全责任书范本
2014/07/24 职场文书
班级活动总结格式
2014/08/30 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis