阿里云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通过shutil实现快速文件复制的方法
Mar 14 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
Apr 05 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
Python定义函数实现累计求和操作
May 03 Python
关于Python解包知识点总结
May 05 Python
python中selenium库的基本使用详解
Jul 31 Python
Django自带用户认证系统使用方法解析
Nov 12 Python
python飞机大战游戏实例讲解
Dec 04 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
Mar 03 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 获取目录下的图片并随机显示的代码
2009/12/28 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
扩展String功能方法
2006/09/22 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python模块包中__init__.py文件功能分析
2016/06/14 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
大学教师年终总结的自我评价
2013/10/29 职场文书
企业宣传工作方案
2014/06/02 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
师德标兵事迹材料
2014/12/19 职场文书
个人先进事迹总结
2015/02/26 职场文书
教师远程培训心得体会
2016/01/09 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python