记录Uwsgi与Django成功勾搭的始末
先说明一下本人的环境:
Uwsgi版本:2.0.14(yum install安装)
django版本:1.10.6(pip install安装)
python版本:2.7.5(阿里云 centos 7自带)
nginx版本:1.10.2(yum install安装)
在http://chenx1242.blog.51cto.com/10430133/1904804里面,我们已经实现了网页打开"good bye,logan"的效果,可见Web Client <===> uWSGI <===> Python是通畅的,现在我们要调整看看django与uwsgi是否是通畅的。
首先,我们在/django这个目录下,#django-admin.py startproject logan,建立了一个叫logan的project,然后在/django/logan/logan里会有一个自动生成的wsgi.py,打开一看,里面的内容如下:
""" WSGI config for logan project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/ """ import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "logan.settings") application = get_wsgi_application()
我们原来的目标就是测试django跟uwsgi的链接是否正常,那么返回到/django/logan,使用#python manage.py runserver 0.0.0.0:8000启动django,然后打开浏览器,在地址栏里输入“外网ip:8000”,看到了如下的界面:
可见django已经启动成功,但是前面说过了,这种方法只能测试环境里小规模的玩玩,完全不推荐拿去生产化境里。所以现在我们用uwsgi在8000来启动一下django。
首先,先停止了原来我们启动的django。
然后,使用命令#uwsgi --http :8000 --wsgi-file logan.py,反馈错误信息如下:
出现这个错误,那就#yum install uwsgi-plugin-python,同时使用#uwsgi --plugin python --http-socket :8001 --wsgi-file /django/logan/logan/wsgi.py,这样却又出了一个新错误:
提示说:ImportError: No module named logan.settings。可是当我使用python客户端单独测试的时候,这个语句是可以使用的,如图:
肯多人都卡在了这种情况,这个时候我们需要换一个命令:#uwsgi --plugin python --http-socket :8001 --chdir /django/logan/ --wsgi-file /django/logan/logan/wsgi.py。然后我们在浏览器地址栏里输入“外网地址:8001”就可以看到如下网页:
可见,我们已经通过uwsgi启动了原本已经关闭了的django,这样就达到了Web Client <===> uWSGI <===> Django的目的。
如果过程中出现了端口被占用的情况,比如8002端口已经被使用了:
1 2 | probably another instance of uWSGI is running on the same address (:8002). bind(): Address already in use [core/socket.c line 764] |
那么就可以使用#lsof -i:8002,然后把对应的进程干掉就好了。
最后附赠python脚本一个,这个脚本可以显示python的path,内容如下:
import os print '===== sys.path / PYTHONPATH =====' for k in sorted(os.environ.keys()): v = os.environ[k] print ('%-30s %s' % (k,v[:70]))
参考资料:http://www.python88.com/topic/101/
参考资料:http://www.nowamagic.net/academy/detail/1330334
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Zibbix3.0安装详解
防伪码:真理不需色彩,美丽不需涂饰 一、监控概述: ·初级: ·1.识别监控对象 (分级) ·2.理解监控对象 (理论基础) ·3.细分监控对象的指标 ·4.确定告警的基准线 ·预中级: 1. 工具化和监控分离 2. 监控对象的分类: 2.1 硬件监控 (方法:机房巡检、IPMI、SNMP简单网络管理协议、) 2.2 系统监控 (对象:cpu、内存、IO【磁盘、网络】) 2.3 服务监控 (对象:分类服务) 2.4 日志监控 (方法:Elastic Stack) 2.5 网络监控 (方法: 第三方、Smokeping) 2.6 APM应用性能管理 (工具:pinpoint APM) 2.7 流量监控(工具:Piwik、xx统计、xx分析) 2.8 其他监控 (APP监控、安全监控、业务监控、舆论监控、xx监控等) 3. 掌握一个监控工具。例如:zabbix ·中级: 0.标准化监控(标准化的脚本、模板、....) 1. 分布式监控(主动、被动、分布式) 2. 自动化监控(自动发现、主动注册【Agent主动注册、Server主动添加(API)】) 3. 性能优化(数据采集、数据...
- 下一篇
memcached--------基于centos6源码安装
1. 背景 许多Web应用程序都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大,访问的集中,就会出现REBMS的负担加重,数据库响应恶化,网站显示延迟等重大影响。Memcached是高性能的分布式内存缓存服务器。一般的使用目的是通过缓存数据库查询结果,减少数据库的访问次数,以提高动态Web应用的速度、提高扩展性。如图: Memcached作为高速运行的分布式缓存服务器具有以下特点。 1. 协议简单 memcached的服务器客户端通信并不使用复杂的MXL等格式,而是使用简单的基于文本的协议。 2. 基于libevent的事件处理 libevent是个程序库,他将Linux的epoll、BSD类操作系统的kqueue等时间处理功能封装成统一的接口。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。 3. 内置内存存储方式 为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached,重启操作...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2配置默认Tomcat设置,开启更多高级功能