阿里云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中cPickle用法例子分享
Jan 03 Python
PyMongo安装使用笔记
Apr 27 Python
Python和Java进行DES加密和解密的实例
Jan 09 Python
使用python判断你是青少年还是老年人
Nov 29 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
搭建python django虚拟环境完整步骤详解
Jul 08 Python
python类中super() 的使用解析
Dec 19 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
Feb 07 Python
利用pandas向一个csv文件追加写入数据的实现示例
Apr 23 Python
如何Tkinter模块编写Python图形界面
Oct 14 Python
Python PIL按比例裁剪图片
May 11 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表格发电子邮件
2006/10/09 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
js中的this关键字详解
2013/09/25 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
python中元类用法实例
2014/10/10 Python
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
OpenCV实现人脸识别
2017/04/07 Python
Python初学者常见错误详解
2019/07/02 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
师范生实习个人的自我评价
2013/09/28 职场文书
总经理岗位职责
2013/11/09 职场文书
大学生创业计划书的格式要求
2013/12/29 职场文书
违反课堂纪律检讨书
2014/01/19 职场文书
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
小学清明节活动总结
2014/07/04 职场文书
生物工程专业求职信
2014/09/03 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
个人工作能力自我评价
2015/03/05 职场文书
承兑汇票延期证明
2015/06/23 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL
MySQL七种JOIN类型小结
2021/10/24 MySQL
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS