Django一:nginx+uwsgi+django+python+mac
2016-06-16 15:34
435 查看
该原文是【我的sina博文】,因为sina对IT代码支持的不是很好,所以将全部迁移到此!!!
注:由于uwsgi性能等原因只适合测试环境中的web请求响应,并且不能做代理、反向代理及负载分担等功能,所以一般情况使用nginx来处理客户端的请求
2:浏览器——》nginx——》uwsgi——》django //处理python写好的web程序注:nginx结合自身强大的并发处理、静态处理等特性,完成相应的处理之后,然后将动态web请求交给标准接口(wsgi)进行处理,wsgi使用标准接口连接python(此处就是ptyon的上层框架),完成整个处理过程
2、python install:默认情况下mac是自带python
3、uwsgi install: //uwsgi是标准的web接口
4、django install: //django是一个python web框架
然后执行shell命令:uwsgi –http :8001 –wsgi-file test.py访问网页:http://127.0.0.1:8001/看在网页上是否有Hello World
2、新建项目,才可以运行django
注:第一次测试性启动的时候,需要进行数据库同步(django版本不同,数据库同步的命令也不一样)
3、关联uwsgi和django:
编写django_wsgi.py文件,将其放在与文件manage.py同一个目录下
然后,就可以执行以下命令:
• 新建配置文件django_socket.xml,将其放在mysite目录中(与manage.py在同一个目录中)
或
• 找到nginx.conf文件,进行如下修改
五、关联运行:
• 重启Nginx服务器,以使Nginx的配置生效nginx -s reload
• 启动uWSGI服务器uwsgi -x djangochina_socket.xml
【uwsgi: invalid option – ‘x’】【安装libxml*】
• 访问服务http://localhost或www.you.com
发个牢骚,sina的这个blog真不适合写代码性的文档,写的时候没有好的排版,看的人也不能很好的区别说明性文字和代码
【官方配置文档】
一、它们之间的关系:
1:浏览器——》uwsgi——》django //处理python写好的web程序注:由于uwsgi性能等原因只适合测试环境中的web请求响应,并且不能做代理、反向代理及负载分担等功能,所以一般情况使用nginx来处理客户端的请求
2:浏览器——》nginx——》uwsgi——》django //处理python写好的web程序注:nginx结合自身强大的并发处理、静态处理等特性,完成相应的处理之后,然后将动态web请求交给标准接口(wsgi)进行处理,wsgi使用标准接口连接python(此处就是ptyon的上层框架),完成整个处理过程
二、环境安装:
1、nginx for mac install:brew install nginx //brew类似linux中的yum或apt-get,是一个在线安全工具(自行安装)$ nginx -v nginx version: nginx/1.8.0
2、python install:默认情况下mac是自带python
$ python -V Python 2.7.10 //(需要更换版本的,自行安装)
3、uwsgi install: //uwsgi是标准的web接口
pip install uwsgi //pip是python的包管理器,类yum、apt-get $ uwsgi --version 2.0.12
4、django install: //django是一个python web框架
pip install django $ django-admin --version 1.7
三、关联性配置:
1、在你的机器上写一个test.py,测试uwsgi能够正常运行:def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World" #return b"Hello World" #有时候需要在字符前加“b”,否则不能显示
然后执行shell命令:uwsgi –http :8001 –wsgi-file test.py访问网页:http://127.0.0.1:8001/看在网页上是否有Hello World
2、新建项目,才可以运行django
$ django-admin startproject mystic #新建一个项目(必须)
mysite manage.py mysite __init__.py urls.py settings.py
#cd mysite python manage.py runserver 0.0.0.0:9000 //此处可以不加ip:port,它有默认的
注:第一次测试性启动的时候,需要进行数据库同步(django版本不同,数据库同步的命令也不一样)
3、关联uwsgi和django:
编写django_wsgi.py文件,将其放在与文件manage.py同一个目录下
#!/usr/bin/env python # coding: utf-8 import os import sys # 将系统的编码设置为UTF8 reload(sys) sys.setdefaultencoding('utf8') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
然后,就可以执行以下命令:
uwsgi --http :8000 --chdir /mysite --module django_wsgi
四、关联nginx和uwsgi:
• Nginx与uWSGI两者之间采用soket来通讯方式,使用8077端口与uWSGI通讯,请确保此端口没有被其它程序采用。• 新建配置文件django_socket.xml,将其放在mysite目录中(与manage.py在同一个目录中)
<uwsgi> <socket>:8077</socket> <chdir>/mysite/</chdir> #注意自己的文件路径 <module>django_wsgi</module> <processes>4</processes> <daemonize>uwsgi.log</daemonize> <stats>127.0.0.1:9191</stats> #本地监控端口,可有可无 </uwsgi>
或
#官网推荐使用ini配置 [root@bogon mysite]# vim mysite.ini [uwsgi] socket = 127.0.0.1:8077 chdir = /usr/share/nginx/mysite/ wsgi-file = mysite/wsgi.py processes = 4 threads = 2 stats = 127.0.0.1:9191
• 找到nginx.conf文件,进行如下修改
server { listen 80; server_name www.you.com; //测试环境可以是localhost location / { include uwsgi_params; #要注意自己的环境中的文件路径 uwsgi_pass 127.0.0.1:8077; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } location /static/ { alias /root/.pyenv/versions/3.5.2/lib/python3.5/site-packages/django/contrib/admin/static/; #根据自己的静态文件目录配置,这个目录是django后台的默认静态文件,如果不配置,那么http://127.0.0.1/admin页面就会没有样式
五、关联运行:
• 重启Nginx服务器,以使Nginx的配置生效nginx -s reload
• 启动uWSGI服务器uwsgi -x djangochina_socket.xml
【uwsgi: invalid option – ‘x’】【安装libxml*】
• 访问服务http://localhost或www.you.com
发个牢骚,sina的这个blog真不适合写代码性的文档,写的时候没有好的排版,看的人也不能很好的区别说明性文字和代码
【官方配置文档】
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- nginx代理指定目录
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- 访问Nginx发生SSL connection error的一种情况
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Nginx+Naxsi部署专业级Web应用防火墙
- Python将excel导入到mysql中
- CentOS 6.2实战部署Nginx+MySQL+PHP