环境说明
Uwsgi版本:2.0.14
(yum install安装)
django版本:1.10.6
(pip install安装)
python版本:2.7.5
(阿里云 centos 7自带)
nginx版本:1.10.2
(yum install安装)
正文
在https://rorschachchan.github.io/2018/02/02/Uwsgi的安装和简单使用/
里面,我们已经实现了网页打开出现”good bye,logan”的效果,可见Web Client <===> uWSGI <===> Python
是通畅的,现在我们要调整看看django与uwsgi是否是通畅的。
首先,我们在/django这个目录下,django-admin.py startproject logan
,建立了一个叫logan的project,然后在/django/logan/logan里会有一个自动生成的wsgi.py
,打开一看,里面的内容如下:
1
2
3
4
5
6
7
8
9
10"""
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
2probably 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,内容如下:
1
2
3
4
5import 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