ngix部署

平时在测试环境下的项目不能承载高并发,需要部署到web server上。
web server:
    apache(早期)
    ngix(更能承载高并发、轻量级,底层是I/O多路复用epoll)

如何在生产上部署Django?

Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式。

uwsgi介绍

uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。

要注意 WSGI / uwsgi / uWSGI 这三个概念的区分。

  1. WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。
  2. uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
  3. 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
  4. uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。

uwsgi性能非常高

uWSGI的主要特点如下

  1. 超快的性能
  2. 低内存占用(实测为apache2的mod_wsgi的一半左右)
  3. 多app管理(终于不用冥思苦想下个app用哪个端口比较好了-.-)
  4. 详尽的日志功能(可以用来分析app性能和瓶颈)
  5. 高度可定制(内存大小限制,服务一定次数后重启等)

总而言之uwgi是个部署用的好东东,正如uWSGI作者所吹嘘的:

If you are searching for a simple wsgi-only server, uWSGI is not for you, but if you are building a real (production-ready) app that need to be rock-solid, fast and easy to distribute/optimize for various load-average, you will pathetically and morbidly fall in love (we hope) with uWSGI.

Uwsgi 安装使用

1 # Install the latest stable release:
2 pip install uwsgi
3 # ... or if you want to install the latest LTS (long term support) release,
4 pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz

安装uwsgi

基本测试

Create a file called test.py:

1 # test.py
2 def application(env, start_response):
3     start_response(‘200 OK‘, [(‘Content-Type‘,‘text/html‘)])
4     return [b"Hello World"] # python3
5     #return ["Hello World"] # python2

测试代码

运行

1 uwsgi --http :8000 --wsgi-file test.py   #在项目中运行

运行

用uwsgi启动Django

1 uwsgi --http :8000 --module projectname.wsgi

用uwsgi启动Django

可以把参数写到配置文件里

 1 [uwsgi]
 2 http = :9000
 3 # the local unix socket file than commnuincate to Nginx
 4 socket = 127.0.0.1:8001
 5 # the base directory (full path)
 6 chdir = /home/ubuntu/midware
 7 # Django‘s wsgi file
 8 wsgi-file = midware/wsgi.py
 9 # maximum number of worker processes
10 processes = 4
11 # thread numbers startched in each worker process
12 threads = 2
13 # monitor uwsgi status
14 stats = 127.0.0.1:9191
15 # clear environment on exit
16 vacuum  = true

uwsgi.ini

用uwsgi启动Django

1 /usr/local/bin/uwsgi crazye-uwsgi.ini

用uwsgi启动Django

1 /usr/local/bin/uwsgi midware-uwsgi.ini

用uwsgi启动Django

/usr/local/bin/uwsgi crazye-uwsgi.ini

  

时间: 2024-10-09 07:05:03

ngix部署的相关文章

宝塔面板部署thinkphp项目时ngix和apach服务器pathinfo的设置

一 前言 宝塔面板无论是对于linux系统还是windows系统,都提供了一键式的部署方案,操作简单,不需要复杂的编程基本功,小白可以完成专业复杂的后端部署.  对于宝塔提供的thinkphp5框架而言,更是大大提高开发效率.今天,针对浏览器访问地址中经常用到的url的pathinfo设置,进行分析总结. 二 pathinfo的概念 pathinfo是thinkphp框架为了url的简化和直观,设定的一种url形式. 今天以最简单的控制品来说明. 举个例如子 http://tp5.com/ind

mosquitto在Linux环境下的部署/安装/使用/测试

mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. 使用传统源码安装步骤: 步骤1:http://mosquitto.org/files/source/官网下载源码,放到Linux环境中.解压后,找到主要配置文件config.mk,其中包含mosquitto的安装选项,需要注意的是,默认情况下mosquitto的安装需要OpenSSL(一个强大的安全

在CentOS下安装Ngix服务及集群PHP、Tomcat

资源下载地址:http://download.csdn.net/detail/attagain/7570597 一. Ngix依赖模块安装 Ngix依赖模块有:pcre.zlib.openssl.md5 /sha1(如果系统中没有安装相应模块,需要按照下列方式安装) 1. 安装pcre模块(8.35) 官方网站:http://www.pcre.org/ 安装命令: # unzip pcre-8.35.zip # cd pcre-8.35 # ./configure # make && ma

wex5教程 宝塔面板+lnmp+wex5项目部署

一 前言 wex5作为前端利器,开发好的项目如何正确.快速.高效.稳定.安全的部署到服务器上,作为初学开发人员,有必要选择一种操作简单,便于运维的方案.今天我以教学视频网站为例,选择宝塔服务器面板,一键安装linux+ngix+mysql+php服务器环境,从建站到部署wex5项目,完成整个操作过程. 效果见我教学网站:http://chinese.sow8.com:10 宝塔面板效果如下,简单,实用,直观. 二  linux系统安装 我选择CentOS,7.3 64位.实测低版本会导致宝塔安装

LNMP分离式部署实例

很多人在练习部署LNMP环境的时候,大都数是部署在同一个虚拟机上面的.但是实际工作中,我们一般都是分离部署的. 今天我就用3台虚拟机,部署下LNMP环境.以供参考! 网络拓扑图: 首先准备3台虚拟机: nginx:192.168.1.214 php:192.168.1.202 mysql:192.168.1.217 首先安装ngix(192.168.1.214):  #解决依赖   yum install -y gcc,openssl-devel,pcre-devel,zilb-devel  p

[部署开发环境]部署django的生成环境nginx+uwsgi+django

#教程 # ubuntu部署django项目 # 部署准备 - ubuntu操作系统 -- vagrant虚拟 - Nginx服务器 -- 安装在ubuntu的web服务器 - uWSGI应用协议服务模块 -- python的uwsgi模块 - python虚拟环境 -- virtualenv - django框架 - nginx 配置(http <--> socket) - uwsgi配置(socket<-->wsgi) - 系统配 详情见图片linux部署django项目图.p

微信小程序——豆瓣电影——(2):小程序运行部署

Demo 预览 演示视频(流量预警 2.64MB) GitHub Repo 地址 仓库地址:https://github.com/zce/weapp-demo 使用步骤 将仓库克隆到本地: bash $ git clone https://github.com/zce/weapp-demo.git weapp-douban --depth 1 $ cd weapp-douban 打开微信Web开放者工具(注意:必须是0.9.092300版本) 必须是0.9.092300版本,之前的版本不能保证正

Spring Boot 热部署

需要在pom.xml文件中加如下代码: 1 <dependencies> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-devtools</artifactId> 5 <optional>true</optional> 6 </dependency> 7 </depe

Centos7.2部署.Net Core2.0 WebApi

部署前准备 1.VisualStudio2017+.netcore2.0SDK 2.Centos7.2 3.SecureCRT,Xftp(根据自己喜好) 创建WebApi项目 修改Program.cs中的BuildWebHost方法为(不改也可,core默认使用Kestrel作为Server) public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseKestrel()