阿里云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中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
Python3中FuzzyWuzzy库实例用法
Nov 18 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 Python
PO模式在selenium自动化测试框架的优势
Mar 20 Python
Python开发简易五子棋小游戏
May 02 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实现curl模拟ftp上传的方法
2015/07/29 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
vue实现商城购物车功能
2017/11/27 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
德国旅游网站:weg.de
2018/06/03 全球购物
性能测试工程师的面试题
2015/02/20 面试题
生物技术专业求职信
2014/06/10 职场文书
优秀党员先进材料
2014/12/18 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA