阿里云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调用zxing库生成二维码图片详解
Jan 10 Python
详解python脚本自动生成需要文件实例代码
Feb 04 Python
Python将多个excel文件合并为一个文件
Jan 03 Python
Python3实现的字典遍历操作详解
Apr 18 Python
Python实现E-Mail收集插件实例教程
Feb 06 Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 Python
python中update的基本使用方法详解
Jul 17 Python
Java文件与类动手动脑实例详解
Nov 10 Python
深入浅析python变量加逗号,的含义
Feb 22 Python
用Python开发app后端有优势吗
Jun 29 Python
详解python tkinter 图片插入问题
Sep 03 Python
python3中数组逆序输出方法
Dec 01 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
php7性能提升的原因详解
2019/10/13 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
ext监听事件方法[初级篇]
2008/04/27 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
vuex的简单使用教程
2018/02/02 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
python操作gitlab API过程解析
2019/12/27 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
力学专业毕业生自荐信
2013/11/17 职场文书
业务主管岗位职责范本
2013/12/25 职场文书
邮政员工辞职信
2014/01/16 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
街道务虚会发言材料
2014/10/20 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL
Python实现简单得递归下降Parser
2022/05/02 Python