阿里云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编写批量卸载手机中安装的android应用脚本
Jul 21 Python
python中的五种异常处理机制介绍
Sep 02 Python
在Django中使用Sitemap的方法讲解
Jul 22 Python
在Python中使用正则表达式的方法
Aug 13 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
Feb 17 Python
Django 项目布局方法(值得推荐)
Mar 22 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
python的flask框架难学吗
Jul 31 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 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
html中select语句读取mysql表中内容
2006/10/09 PHP
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
PHP小技巧之函数重载
2014/06/02 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
一些实用的jQuery代码片段收集
2011/07/12 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
生成二维码方法汇总
2014/12/26 Javascript
js的回调函数详解
2015/01/05 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python生成随机密码
2015/03/10 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
python判断是空的实例分享
2020/07/06 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
汉森批发:Hansen Wholesale
2018/05/24 全球购物
应届大学生自荐信格式
2013/09/21 职场文书
应届大学生的推荐信
2013/11/20 职场文书
电大本科自我鉴定
2014/02/05 职场文书
就业协议书的作用
2014/04/11 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server