阿里云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实现统计单词出现的个数
May 28 Python
Python脚本文件打包成可执行文件的方法
Jun 02 Python
Python 爬虫的工具列表大全
Jan 31 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
Python3的介绍、安装和命令行的认识(推荐)
Oct 20 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
python中append函数用法讲解
Dec 11 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 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/11/09 PHP
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
php常用正则函数实例小结
2016/12/29 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python用字典构建多级菜单功能
2019/07/11 Python
如何使用python操作vmware
2019/07/27 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
linux面试相关问题
2013/04/28 面试题
求职简历自荐信范文
2013/10/21 职场文书
石油大学毕业生自荐信
2014/01/28 职场文书
优乐美广告词
2014/03/14 职场文书
2016新年晚会开场白
2015/12/03 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
52条SQL语句教你性能优化
2021/05/25 MySQL
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
Win11查看设备管理器
2022/04/19 数码科技
mysqldump进行数据备份详解
2022/07/15 MySQL