阿里云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随机生成数模块random使用实例
Apr 13 Python
Python爬虫天气预报实例详解(小白入门)
Jan 24 Python
解决python3 json数据包含中文的读写问题
May 10 Python
详解pandas安装若干异常及解决方案总结
Jan 10 Python
Python实现多态、协议和鸭子类型的代码详解
May 05 Python
详解在python操作数据库中游标的使用方法
Nov 12 Python
numpy:np.newaxis 实现将行向量转换成列向量
Nov 30 Python
python错误调试及单元文档测试过程解析
Dec 19 Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 Python
基于python制作简易版学生信息管理系统
Apr 20 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 中英文语言转换类代码
2011/08/11 PHP
php继承的一个应用
2011/09/06 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
PyCharm 常用快捷键和设置方法
2017/12/20 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
python requests post多层字典的方法
2018/12/27 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
饲料采购员岗位职责
2013/12/19 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
2014年廉洁自律承诺书
2014/05/26 职场文书
分居协议书范本
2014/11/03 职场文书
狮子林导游词
2015/02/03 职场文书
求职信范文怎么写
2015/03/19 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
教师远程研修感悟
2015/11/18 职场文书
AJAX学习笔记
2021/05/18 Javascript