uWSGI + Nginx 部署

2024-04-30 14:32
文章标签 部署 nginx uwsgi

本文主要是介绍uWSGI + Nginx 部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

uWSGI + Nginx 部署 Flask Web 应用

创建Flask工程

 

这里就用最简单的HelloWorld,创建一个工程目录:linuxidc,里面包含以下文件:

 

文件名:linuxidc.py

 

代码:

 

from flask import Flask

 

app = Flask(__name__)

 

@app.route('/')

 

def hello():

 

    return 'Hello World'

 

if __name__ == '__main__':

 

      app.run()

 

给项目目录配置权限,nginxuwsgi默认是以www-data用户和组来运行:

 chown -R www-data:www-data /var/virenvs/myenv/myproject

 chmod -R 775 /var/virenvs/myenv/myproject

 创建uwsgi配置文件

 

3)配置 uwsgi

 

在刚才创建的linuxidc目录下创建一个uwsgixml配置文件linuxidc_config.xml:

 

<uwsgi>

 

    <pythonpath>[你的工程的根目录]</pythonpath>

 

    <module>[模块名,这里用linuxidc]</module>

 

    <callable>[因为app是启动整个服务的入口,所以是app]</callable>

 

    <socket>0.0.0.0:8000</socket>      #注: 指定某个固定端口

 

    <master/>

 

    <processes>4</processes>                #注:跑几个进程,这里用4个进程

 

    <memory-report/>

 

</uwsgi>

 

4)配置 nginx

 

/etc/nginx/sites-available/目录下,创建一个站点文件:site

 

server {

        listen 80;

        server_name www.linuxidc.com;

 

        location / {

                include uwsgi_params;

                uwsgi_pass  0.0.0.0:8000;  #注:这里的端口8000uwsgi的里配的是同一个端口,因为nginxuwsgi需要通过这个端口进行交互

        }

 }

 

然后用Linuxln命令创建一个link/etc/nginx/sites-enable/里,link的名字也叫site,删除sites-enable目录下的defaultlink。(很重要)

 

5)开始部署

 

启动uwsgi,命令是 sudo uwsgi -x linuxidc_config.xml,会打出很多的字,如果没有加载工程成功可以从打出的信息中看出,然后不要关闭该Terminal,新打开一个Terminal,在里面启动nginxsudo /etc/init.d/nginx start,然后在浏览器里访问localhost就可以看到“Hello World” 

http://my.oschina.net/guol/blog/121418

基于python的web项目,常见的部署方法有:
      fcgi:用spawn-fcgi或者框架自带的工具对各个project分别生成监听进程,然后和http服务互动。
      wsgi:利用http服务的mod_wsgi模块来跑各个project。

不过还有个uwsgi,它既不用wsgi协议也不用fcgi协议,而是自创了一个uwsgi的协议,据作者说该协议大约是fcgi协议的10倍那么快。uWSGI的主要特点如下:
       超快的性能。
       低内存占用(实测为apache2的mod_wsgi的一半左右)。
       多app管理。
       详尽的日志功能(可以用来分析app性能和瓶颈)。
       高度可定制(内存大小限制,服务一定次数后重启等)。

环境ubuntu 12.04 IP:10.1.6.79

安装nginx

1

apt-getinstall nginx-full nginx-common

nginx配置/etc/nginx/sites-enabled/example

1

2

3

4

5

6

7

8

9

10

11

12

13

server {

        listen          80;

        server_name     10.1.6.79;##浏览器访问

        access_log     /var/log/nginx/example_access.log;

        error_log      /var/log/nginx/example_error.log;

        root           /var/www/example;

        location / {

            uwsgi_pass      127.0.0.1:9001; ###uwsgi_pass uwsgi通信

            include         uwsgi_params;

            uwsgi_param     UWSGI_SCHEME $scheme;

            uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;

        }

}

安装uwsgi

 

1

apt-getinstall uwsgi uwsgi-plugin-python

    如果你想安装所有的uwsgi插件,则可以安装uwsgi-plugin-all软件包

uwsgi配置/etc/uwsgi/apps-enabled/default.xml

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<uwsgi>

    <plugin>python</plugin>

    <socket>127.0.0.1:9001</socket> ###uwsgi_pass nigix通信 

    <pythonpath>/var/www/example/app/</pythonpath>

    <app mountpoint="/">

        <script>wsgi_configuration_module</script>

    </app>

    <master/>

    <processes>4</processes>

    <reload-mercy>8</reload-mercy>

    <cpu-affinity>1</cpu-affinity>

    <max-requests>2000</max-requests>

    <limit-as>512</limit-as>

    <reload-on-as>256</reload-on-as>

    <reload-on-rss>192</reload-on-rss>

    <no-orphans/>

    <vacuum/>

</uwsgi>

    uwsgi配置文件中的参数也可以在命令行通过uwsgi指定,配置文件除了xml格式外,还可以写成ini格式的,软件包安装完毕后在/usr/share/doc/uwsgi/examples/conffile目录下会有一些xml和ini格式配置文件的例子。

wsgi_configuration_module.py脚本内容

1

2

3

4

5

6

7

8

9

10

11

12

#!/usr/bin/python

importos

importsys

sys.path.append('/var/www/example/app')

os.environ['PYTHON_EGG_CACHE'] ='/var/www/example/.python-egg'

def application(environ, start_response):

    status ='200 OK'

    output ='Hello World!'

    response_headers = [('Content-type','text/plain'),

                    ('Content-Length', str(len(output)))]

    start_response(status, response_headers)

    return[output]

启动uwsgi

 

1

uwsgi -x/etc/uwsgi/apps-enabled/default.xml --daemonize/var/log/uwsgi/app/default.log

uwsgi 的参数: 
    -M 开启Master进程 
    -p 4 开启4个进程 
    -s 使用的端口或者socket地址 
    -d 使用daemon的方式运行, 注意, 使用-d后, 需要加上log文件地址, 比如-d /var/log/uwsgi.log 
    -R 10000 开启10000个进程后, 自动respawn下 
    -t 30 设置30s的超时时间, 超时后, 自动放弃该链接 
    –limit-as 32 将进程的总内存量控制在32M 
    -x  使用配置文件模式

并发4个线程
uwsgi -s :9090 -w myapp -p 4
主控制线程+4个线程
uwsgi -s :9090 -w myapp -M -p 4
执行超过30秒的client直接放弃
uwsgi -s :9090 -w myapp -M -p 4 -t 30
限制内存空间128M
uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128
服务超过10000个req自动respawn
uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000
后台运行等
uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log 

      除了直接用uwsgi命令启动外,还可以用init.d下的脚本启动,不过需先修改/etc/default/uwsgi中默认配置文件的路径,然后通过/etc/init.d/uwsgi start启动

 

1

2

#INHERITED_CONFIG=/usr/share/uwsgi/conf/default.ini

INHERITED_CONFIG=/etc/uwsgi/apps-enabled/default.xml

启动nginx

 

1

/etc/init.d/nginxstart

效果如下:


    python在国内用来做web还不多,虽然python也有一些web框架,不过目前来看文档缺失、本身系统的稳定都还没经过量和时间的考验,要像PHP那样大规模的火起来还需一段时间。

 

####################################################################

 

Nginx+uWsgi+web.py 搭建与简单测试

 

 

 

         

Nginx+uWsgi+web.py 搭建与简单测试

Nginx + uWsgi + web.py 效率真是不错。

安装uWsgi  

首先是下载 http://projects.unbit.it/downloads/uwsgi-1.9.14.tar.gz

解压 sudo python setup.py build

安装 make

nginxweb.py的安装就不多说

nginx配置

location / {

include uwsgi_params;

#uwsgi_pass 127.0.0.1:9002;

 #对应uwsgi.ini配置的socket文件

uwsgi_pass unix:/tmp/uwsgi.sock;

}

#静态文件访问

location /static/ {

if (-f $request_filename) {

rewrite ^/static/(.*)$ /static/$1 break;

}

}

基于web.py的脚本index.py

import web

urls = ("/.*", "hello")

app = web.application(urls, globals())

class hello:

def GET(self):

return 'Hello, world!'

#if __name__ == "__main__": #注意将改行注释掉

application = app.wsgifunc()

uWsgi的配置

[uwsgi]

#socket = 127.0.0.1:9002

#socket文件方式

socket = /tmp/uwsgi.sock

chdir = /data/www/webpy/

processes = 8

threads = 2

master = true

module = index

;pidfile = /data/uwsgi-bin/uwsgi.pid

;listen = 128

#守护进程方式运行,并指明日志文件

daemonize = /data/www/webpy/uwsgi.log

注意chdir指向程序目录,module是主运行文件,见上,加入pidfile后好像对性能有影响,所以这里注释掉。

运行 sudo uwsgi uwsgi.ini

测试
   测试使用的是apacheab工具。ab -n1000 -c100 http://192.168.1.1:8080/,结果如下: 

php来测试下,同样的服务器,同样的nginx,使用的是nginx + php-fpm fastcgi的模式。

看得出比PHP还是快了不少

 

 

 #!/bin/bash 

 wget -c http://rfyiamcool.googlecode.com/files/pcre-8.13.tar.gz 

 tar zxvf pcre-8.13.tar.gz 

 cd pcre-8.13/ 

 ./configure 

 make && make install 

 cd ../ 

 useradd www 

 wget -c http://rfyiamcool.googlecode.com/files/nginx-1.2.0.tar.gz 

 tar zxvf nginx-1.2.0.tar.gz 

 cd nginx-1.2.0 

 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 

 make && make install 

 cd .. 

 wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz 

 cd uwsgi-1.3/ 

 python uwsgiconfig.py --build 

 \cp nginx/uwsgi_params /usr/local/nginx/conf/ -f 

  

 vi /usr/local/nginx/conf/nginx.conf 

  

 server { 

         listen        80; 

         server_name localhost; 

  

         location / { 

             root  /usr/local/nginx/html; 

             include uwsgi_params; 

             uwsgi_pass 127.0.0.1:8000; 

         } 

  

  } 

  

 /usr/local/nginx/sbin/nginx 

  

 cd /usr/local/nginx/html 

 vi uwsgi.xml 

 <uwsgi> 

 <socket>127.0.0.1:8000</socket> 

 <module>myuwsgi</module> 

 <master /> 

 <pythonpath>/usr/local/nginx/html</pythonpath> 

 <processes>2</processes> 

 </uwsgi> 

  

 vi   web.py 

  

 #!/usr/bin/env python 

  

 import os 

 import web 

  

 urls = ('/(.*)', 'hello') 

  

 app = web.application(urls, globals()) 

  

 class hello: 

     def GET(self, name): 

         if not name: 

             name = "World" 

         return "Hello" + name + "!" 

  

 appapplication = app.wsgifunc() 

  

  

 启动 

 /usr/local/uwsgi-1.3/uwsgi -x /usr/local/nginx/html/uwsgi.xml --daemonize /usr/local/nginx/html/uwsgi.error.log 

  

  

 停止uWSGI 

  

 killall -9 uwsgi 

  

  

 排错 

 netstat -an|grep -E '(8000|80)' 

 ps aux|grep uwsgi 

http://my.oschina.net/guol/blog/121418

基于python的web项目,常见的部署方法有:
      fcgi:用spawn-fcgi或者框架自带的工具对各个project分别生成监听进程,然后和http服务互动。
      wsgi:利用http服务的mod_wsgi模块来跑各个project。

不过还有个uwsgi,它既不用wsgi协议也不用fcgi协议,而是自创了一个uwsgi的协议,据作者说该协议大约是fcgi协议的10倍那么快。uWSGI的主要特点如下:
       超快的性能。
       低内存占用(实测为apache2的mod_wsgi的一半左右)。
       多app管理。
       详尽的日志功能(可以用来分析app性能和瓶颈)。
       高度可定制(内存大小限制,服务一定次数后重启等)。

环境ubuntu 12.04 IP:10.1.6.79

安装nginx

1

apt-getinstall nginx-full nginx-common

nginx配置/etc/nginx/sites-enabled/example

1

2

3

4

5

6

7

8

9

10

11

12

13

server {

        listen          80;

        server_name     10.1.6.79;##浏览器访问

        access_log     /var/log/nginx/example_access.log;

        error_log      /var/log/nginx/example_error.log;

        root           /var/www/example;

        location / {

            uwsgi_pass      127.0.0.1:9001; ###uwsgi_pass uwsgi通信

            include         uwsgi_params;

            uwsgi_param     UWSGI_SCHEME $scheme;

            uwsgi_param     SERVER_SOFTWARE    nginx/$nginx_version;

        }

}

安装uwsgi

 

1

apt-getinstall uwsgi uwsgi-plugin-python

    如果你想安装所有的uwsgi插件,则可以安装uwsgi-plugin-all软件包

uwsgi配置/etc/uwsgi/apps-enabled/default.xml

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<uwsgi>

    <plugin>python</plugin>

    <socket>127.0.0.1:9001</socket> ###uwsgi_pass nigix通信 

    <pythonpath>/var/www/example/app/</pythonpath>

    <app mountpoint="/">

        <script>wsgi_configuration_module</script>

    </app>

    <master/>

    <processes>4</processes>

    <reload-mercy>8</reload-mercy>

    <cpu-affinity>1</cpu-affinity>

    <max-requests>2000</max-requests>

    <limit-as>512</limit-as>

    <reload-on-as>256</reload-on-as>

    <reload-on-rss>192</reload-on-rss>

    <no-orphans/>

    <vacuum/>

</uwsgi>

    uwsgi配置文件中的参数也可以在命令行通过uwsgi指定,配置文件除了xml格式外,还可以写成ini格式的,软件包安装完毕后在/usr/share/doc/uwsgi/examples/conffile目录下会有一些xml和ini格式配置文件的例子。

wsgi_configuration_module.py脚本内容

1

2

3

4

5

6

7

8

9

10

11

12

#!/usr/bin/python

importos

importsys

sys.path.append('/var/www/example/app')

os.environ['PYTHON_EGG_CACHE'] ='/var/www/example/.python-egg'

def application(environ, start_response):

    status ='200 OK'

    output ='Hello World!'

    response_headers = [('Content-type','text/plain'),

                    ('Content-Length', str(len(output)))]

    start_response(status, response_headers)

    return[output]

启动uwsgi

 

1

uwsgi -x/etc/uwsgi/apps-enabled/default.xml --daemonize/var/log/uwsgi/app/default.log

uwsgi 的参数: 
    -M 开启Master进程 
    -p 4 开启4个进程 
    -s 使用的端口或者socket地址 
    -d 使用daemon的方式运行, 注意, 使用-d后, 需要加上log文件地址, 比如-d /var/log/uwsgi.log 
    -R 10000 开启10000个进程后, 自动respawn下 
    -t 30 设置30s的超时时间, 超时后, 自动放弃该链接 
    –limit-as 32 将进程的总内存量控制在32M 
    -x  使用配置文件模式

并发4个线程
uwsgi -s :9090 -w myapp -p 4
主控制线程+4个线程
uwsgi -s :9090 -w myapp -M -p 4
执行超过30秒的client直接放弃
uwsgi -s :9090 -w myapp -M -p 4 -t 30
限制内存空间128M
uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128
服务超过10000个req自动respawn
uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000
后台运行等
uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log 

      除了直接用uwsgi命令启动外,还可以用init.d下的脚本启动,不过需先修改/etc/default/uwsgi中默认配置文件的路径,然后通过/etc/init.d/uwsgi start启动

 

1

2

#INHERITED_CONFIG=/usr/share/uwsgi/conf/default.ini

INHERITED_CONFIG=/etc/uwsgi/apps-enabled/default.xml

启动nginx

 

1

/etc/init.d/nginxstart

效果如下:


    python在国内用来做web还不多,虽然python也有一些web框架,不过目前来看文档缺失、本身系统的稳定都还没经过量和时间的考验,要像PHP那样大规模的火起来还需一段时间。

 

####################################################################

 

Nginx+uWsgi+web.py 搭建与简单测试

 

 

 

         

Nginx+uWsgi+web.py 搭建与简单测试

Nginx + uWsgi + web.py 效率真是不错。

安装uWsgi  

首先是下载 http://projects.unbit.it/downloads/uwsgi-1.9.14.tar.gz

解压 sudo python setup.py build

安装 make

nginxweb.py的安装就不多说

nginx配置

location / {

include uwsgi_params;

#uwsgi_pass 127.0.0.1:9002;

 #对应uwsgi.ini配置的socket文件

uwsgi_pass unix:/tmp/uwsgi.sock;

}

#静态文件访问

location /static/ {

if (-f $request_filename) {

rewrite ^/static/(.*)$ /static/$1 break;

}

}

基于web.py的脚本index.py

import web

urls = ("/.*", "hello")

app = web.application(urls, globals())

class hello:

def GET(self):

return 'Hello, world!'

#if __name__ == "__main__": #注意将改行注释掉

application = app.wsgifunc()

uWsgi的配置

[uwsgi]

#socket = 127.0.0.1:9002

#socket文件方式

socket = /tmp/uwsgi.sock

chdir = /data/www/webpy/

processes = 8

threads = 2

master = true

module = index

;pidfile = /data/uwsgi-bin/uwsgi.pid

;listen = 128

#守护进程方式运行,并指明日志文件

daemonize = /data/www/webpy/uwsgi.log

注意chdir指向程序目录,module是主运行文件,见上,加入pidfile后好像对性能有影响,所以这里注释掉。

运行 sudo uwsgi uwsgi.ini

测试
   测试使用的是apacheab工具。ab -n1000 -c100 http://192.168.1.1:8080/,结果如下: 

php来测试下,同样的服务器,同样的nginx,使用的是nginx + php-fpm fastcgi的模式。

看得出比PHP还是快了不少

 

 

 #!/bin/bash 

 wget -c http://rfyiamcool.googlecode.com/files/pcre-8.13.tar.gz 

 tar zxvf pcre-8.13.tar.gz 

 cd pcre-8.13/ 

 ./configure 

 make && make install 

 cd ../ 

 useradd www 

 wget -c http://rfyiamcool.googlecode.com/files/nginx-1.2.0.tar.gz 

 tar zxvf nginx-1.2.0.tar.gz 

 cd nginx-1.2.0 

 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 

 make && make install 

 cd .. 

 wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz 

 cd uwsgi-1.3/ 

 python uwsgiconfig.py --build 

 \cp nginx/uwsgi_params /usr/local/nginx/conf/ -f 

  

 vi /usr/local/nginx/conf/nginx.conf 

  

 server { 

         listen        80; 

         server_name localhost; 

  

         location / { 

             root  /usr/local/nginx/html; 

             include uwsgi_params; 

             uwsgi_pass 127.0.0.1:8000; 

         } 

  

  } 

  

 /usr/local/nginx/sbin/nginx 

  

 cd /usr/local/nginx/html 

 vi uwsgi.xml 

 <uwsgi> 

 <socket>127.0.0.1:8000</socket> 

 <module>myuwsgi</module> 

 <master /> 

 <pythonpath>/usr/local/nginx/html</pythonpath> 

 <processes>2</processes> 

 </uwsgi> 

  

 vi   web.py 

  

 #!/usr/bin/env python 

  

 import os 

 import web 

  

 urls = ('/(.*)', 'hello') 

  

 app = web.application(urls, globals()) 

  

 class hello: 

     def GET(self, name): 

         if not name: 

             name = "World" 

         return "Hello" + name + "!" 

  

 appapplication = app.wsgifunc() 

  

  

 启动 

 /usr/local/uwsgi-1.3/uwsgi -x /usr/local/nginx/html/uwsgi.xml --daemonize /usr/local/nginx/html/uwsgi.error.log 

  

  

 停止uWSGI 

  

 killall -9 uwsgi 

  

  

 排错 

 netstat -an|grep -E '(8000|80)' 

 ps aux|grep uwsgi 

这篇关于uWSGI + Nginx 部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/949121

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

Solr部署如何启动

Solr部署如何启动 Posted on 一月 10, 2013 in:  Solr入门 | 评论关闭 我刚接触solr,我要怎么启动,这是群里的朋友问得比较多的问题, solr最新版本下载地址: http://www.apache.org/dyn/closer.cgi/lucene/solr/ 1、准备环境 建立一个solr目录,把solr压缩包example目录下的内容复制

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

nginx长连接的问题

转自: http://www.360doc.com/content/12/1108/17/1073512_246644318.shtml

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

CRtmpServer转推流到Nginx Rtmp及SRS(SimpleRtmpServer)的经历

转自:http://blog.csdn.net/fengyily/article/details/42557841 本人一直用的是CRtmpServer服务,在CRtmpServer服务中根据自已的想法也加入了许多功能,如通过http接口来加载配置等,苦于不支持HLS,自已添加ts分片水平又有限,思来想去决定借助SimpleRtmpServer的HLS功能。说干就干,马上查找相关资源