阿里云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实现rest请求api示例
Apr 22 Python
python中使用enumerate函数遍历元素实例
Jun 16 Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 Python
python实现ID3决策树算法
Dec 20 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
Python中fnmatch模块的使用详情
Nov 30 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
用python写测试数据文件过程解析
Sep 25 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 Python
基于python监控程序是否关闭
Jan 14 Python
Python yield的用法实例分析
Mar 06 Python
浅谈Python中range与Numpy中arange的比较
Mar 11 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分页函数
2006/07/08 PHP
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
2016/09/21 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
一个简单的python程序实例(通讯录)
2013/11/29 Python
python处理cookie详解
2014/02/07 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
如何将整数int转换成字串String
2014/03/21 面试题
小学生自我评价范例
2013/09/24 职场文书
中专三年学习的个人自我评价
2013/12/12 职场文书
酒店前厅员工辞职信
2014/01/08 职场文书
科技工作者先进事迹
2014/08/16 职场文书
新员工入职欢迎词
2015/01/23 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
交通事故调解协议书
2015/05/20 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python