2019独角兽企业重金招聘Python工程师标准>>>

由于一个监控项目(使用django开发)交接到所在项目组,需要了解python的web开发和环境搭建。

这里记录环境的搭建流程,以及遇到的问题和处理方案。

环境信息: CentOS 6.6 (内网IP:100.84.73.45) Nginx 1.2.8 Python 2.6.6 Django 1.6 uwsgi 2.0.11.2

注意:Django1.6匹配的python最高版本是2.6,如果安装太高版本的django,需要使用python2.6以上版本,否则安装过程会报错:invalid syntax

这里我的机器自带了python2.6.6,就不介绍python的安装了。

安装pip

pip是python的包管理工具,我们使用pip进行python的管理

# wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
# python get-pip.py

安装uWSGI

uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。

  • 使用pip安装 uwsgi
# export LDFLAGS="-Xlinker --no-as-needed"
# pip install uwsgi
  • 测试uwsgi

创建一个test.py的测试文件

# pwd
/home/test/django
# touch test.py
# vim test.py

test.py内容如下:

def application(env, start_response):start_response('200 OK', [('Content-Type','text/html')])return "Hello World"
  • 启动uwsgi
# pwd
/home/test/django
# uwsgi --http :13010 --wsgi-file test.py

在浏览器中输入:http://100.84.73.45:13010

uwsgi安装和启动正常。

安装django

  • 使用pip安装 django

由于使用的是python2.6.6,因此需要安装1.6版本的django。

安装指定版本的django的方式如下:

# pip install -v django==1.6
  • 新建Django工程
# pwd
/home/test/django
#  django-admin.py startproject MySite
# ls
MySite  test.py
  • 使用uwsgi启动django工程
# pwd
/home/test/django
# cd MySite
# uwsgi --http :13010 --wsgi-file MySite/wsgi.py

在浏览器中输入:http://100.84.73.45:13010

到此django安装成功,并且和uwsgi结合成功。

  • 补充信息

也可以使用如下命令启动django工程

# pwd
/home/test/django/MySite
# uwsgi --http :13010 --module MySite.wsgi

如果是单独调试django,可以使用django自带的简单服务器进行。

# pwd
/home/test/django/MySite
# python manage.py runserver 0.0.0.0:13010

安装nginx

  • 源码安装nginx

我们采用源码方式安装。 搜狐镜像下载地址:http://mirrors.sohu.com/nginx/ 我选择的是 1.2.8 版本

安装步骤,可以看这里:http://xyuex.blog.51cto.com/5131937/1013414

  • 配置nginx
# pwd
/home/test/local/nginx
# touch nginx_django_unix.conf

nginx_django_unix.conf内容如下:

worker_processes  2;events {use epoll;worker_connections  1024;
}http {include       conf/mime.types;default_type  application/octet-stream;sendfile        on;tcp_nopush     on;keepalive_timeout  65;gzip  on;upstream django {#server 127.0.0.1:13010; # nginx使用tcp方式与uwsgi交互server unix:///home/test/django/MySite/MySite.sock; # nginx使用unix本地socket方式与uwsgi交互}server {listen       13000;server_name  uwsgi_django;client_max_body_size 75M;location / {uwsgi_pass django;uwsgi_pass_header http;uwsgi_read_timeout 300;include conf/uwsgi_params;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}
  • 启动uwsgi 和 nginx
# pwd
/home/test/django/MySite
# uwsgi --socket ./MySite.sock --module MySite.wsgi
# cd ~/local/nginx
# pwd
/home/test/local/nginx
# sbin/nginx -c nginx_uwsgi.conf

在浏览器中输入:http://100.84.73.45:13000

到此 nginx uwsgi django三个完成了结合。

过程中遇到的问题

uwsgi的交互方式

nginx与uwsgi有三种交互方式:http、tcp、unix本地sock http方式主要是利用nginx的反向代理功能。 TCP方式是ngix通过tcp方式和uwsgi交互。 unix本地sock是通过本地的sock文件进行交互。

  • 如果使用本地sokc方式,uwsgi的启动应该是
# uwsgi --socket ./MySite.sock --module MySite.wsgi

并且nginx的upsteam配置sock文件地址

  • 如果是TCP方式,uwsig的启动应该是
# uwsgi --socket :13010 --module MySite.wsgi

并且nginx的upsteam配置ip和端口

  • 采用反向代理方式,uwsgi的启动应该是
# uwsgi --http:13010 --module MySite.wsgi

nginx的完整配置如下:

worker_processes  2;events {use epoll;worker_connections  1024;
}http {include       conf/mime.types;default_type  application/octet-stream;sendfile        on;tcp_nopush     on;keepalive_timeout  65;gzip  on;upstream django {server 127.0.0.1:13010;}server {listen       13000;server_name  uwsgi_django;client_max_body_size 75M;location / {proxy_pass http://django; # 注意这里使用的是proxy_pass协议是http}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

转载于:https://my.oschina.net/u/583362/blog/593896

Nginx uWsgi Django环境搭建相关推荐

  1. nginx+uwsgi+django环境部署部署

    首科常昊技术部 Django框架部署文档: 硬件环境:阿里云ecs服务器8核心.16GB.10Mbps 环境结构:nginx+uwsgi+django 所需软件:python-3.6.1.pip3.6 ...

  2. 微信抢票环境配置——nginx + uwsgi + django配置服务器

    微信抢票环境配置--nginx + uwsgi + django配置服务器 1 uwsgi配置 2 http协议(80端口)下的nginx配置 1 uwsgi配置 安装uwsgi pip3 insta ...

  3. Ubuntu Nginx uwsgi django 初试

    /*************************************************************************************** Ubuntu Ngin ...

  4. nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求) 基于wsgi运行的框架 ...

  5. Docker部署Angular+Nginx+uwsgi+Django项目

    Docker部署Angular+Nginx+uwsgi+Django项目 0.前言 在开发部署时,容易遇到服务器环境不一致,多台服务重复部署操作过于繁杂的情况.这时可以采用Docker来提供一套统一的 ...

  6. 如何配置nginx+uwsgi+django?(知乎上面的看着不错)

    作者:知乎用户 链接:https://www.zhihu.com/question/27295854/answer/36365005 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  7. Centos 6.5部署nginx+uwsgi+django

    Centos 6.5部署nginx+uwsgi+django 一.安装python3,系统默认是python2.6 1.安装依赖软件 yum -y install sqlite-devel yum - ...

  8. nginx+uWSGI + django部署项目

    项目部署 nginx+uWSGI + django 1. WSGI WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器(返回静态资源的就是web服务器,Nginx)如何与Web应用程序( ...

  9. 从零开始的腾讯云使用体验-4-搭建nginx+uwsgi+django

    搭建nginx+uwsgi+django 下载uwsgi 测试uwsgi是否能正常使用 下载nginx uwsgi启动django 重启uwsgi 配置nginx 常用nginx命令 下载uwsgi ...

最新文章

  1. 奇迹服务器维护,奇迹MU 3月31日服务器维护更新公告
  2. 安卓使用Span富文本给某段Text文本加上波浪线
  3. 在Eclipse中显示.project和.classpath和.setting目录
  4. ES6新特性之Generator函数
  5. thinkphp5.1 php7,空白目录 · 细数ThinkPHP5.1.7版本新特性 · 看云
  6. Superset单点登录调整源码
  7. 【Qt开发】QTableWidget设置根据内容调整列宽和行高
  8. 英国帝国理工学院招聘研究助理,医学影像分析方向
  9. 如何在局域网中对网线全面测试
  10. windows配置java环境变量
  11. 你不了解的事,十三天精通爬虫分布式学习路线,赠教程
  12. LightOJ 1224 DNA Prefix(字典树)
  13. android流量卡信息,Android 双卡获取当前使用流量在线卡的信息
  14. 我在日本最大的房地产信息网站做重构
  15. 下列python语句的输出结果是_下列Python语句的输出结果是
  16. 计算机软件技术基础复习
  17. pytorch 中 混合精度训练(真香)
  18. elementUI表格动态渲染错乱
  19. 007 人工智能摄像头之二哈识图转接板模块
  20. 图像处理------提高图像边缘锐利度之UNSHARP_MASK算法

热门文章

  1. 交叉路口红绿灯控制程序linux,PLC十字路口的交通灯控制编程实例!
  2. u盘复制不进去东西_限制电脑只能识别自己指定的U盘
  3. ros2_object_analytics安装过程全记录
  4. 三维重建-opencv实现sfm
  5. 中国汽车融资租赁业运营前景与投资战略规划报告2022-2028年版
  6. how to fix error 25007 : loadlibraryshim()
  7. Jquery-core.holdReady()
  8. 浅谈Java网络编程之Socket (2)
  9. ASP.NET MVC 3 RC发布
  10. 解决方案 | 阴阳师御用动画制作团队,丁磊的秘密武器