FFmpeg入门详解之97:nginx入门

一、nginx 功能介绍

    Nginx因为它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名.业界一致认为它是Apache2.2+mod_proxy_balancer的轻量级代替者,不仅是因为响应静态页面的速度非常快,而且它的模块数量达到Apache的近2/3。对proxy和rewrite模块的支持很彻底,还支持mod_fcgi、ssl、vhosts ,适合用来做mongrel clusters的前端HTTP响应。

nginx和Apache一样使用模块化设计,nginx模块包括内置模块和第三方模块,其中内置模块中包含主模块和事件模块。

nginx处理请求逻辑图

二、nginx可以提供的服务

  • web 服务.

  • 负载均衡 (反向代理)

  • web cache(web 缓存)

三、nginx 的优点

高并发。静态小文件
占用资源少。2万并发、10个线程,内存消耗几百M。
功能种类比较多。web,cache,proxy。每一个功能都不是特别强。
支持epoll模型,使得nginx可以支持高并发。
nginx 配合动态服务和Apache有区别。(FASTCGI 接口)
利用nginx可以对IP限速,可以限制连接数。
配置简单,更灵活。

四、nginx应用场合

静态服务器。(图片,视频服务)另一个lighttpd。并发几万,html,js,css,flv,jpg,gif等。
动态服务,nginx——fastcgi 的方式运行PHP,jsp。(PHP并发在500-1500,MySQL 并发在300-1500)。
反向代理,负载均衡。日pv2000W以下,都可以直接用nginx做代理。
缓存服务。类似 SQUID,VARNISH。

五、主流web服务产品对比说明

5.1 Apache-特性

  • 2.2版本本身稳定强大,据官方说:其2.4版本性能更强。

  • prefork模式取消了进程创建开销,性能很高。

  • 处理动态业务数据时,因关联到后端的引擎和数据库,瓶颈不在与Apache本身。

  • 高并发时消耗系统资源相对多一些。

  • 基于传统的select模型。

  • 扩展库,DSO方法。

5.2 nginx-特性

  • 基于异步IO模型,(epoll,kqueue),性能强,能够支持上万并发。

  • 对小文件支持很好,性能很高(限静态小文件1M)。

  • 代码优美,扩展库必须编译进主程序。

  • 消耗代码资源比较低。

  • lighttpd(百度贴吧,豆瓣)

  • 基于异步IO模式,性能和nginx相近。

  • 扩展库是SO模式,比nginx要灵活。

  • 8.通过差距(mod_secdownload)可实现文件URL地址加密。

5.3 web服务产品性能对比测试

5.3.1 静态数据性能对比

处理静态文件Apache性能比nginx和lighttpd要差。

nginx在处理小文件优势明显。

处理静态小文件(小于1M),nginx和lighttpd比Apache更有优势,lighttpd最强。

5.3.2 动态数据性能对比

    处理动态内容三者相差不大,主要取决于PHP和数据库的压力。

当处理动态数据时,三者差距不大,从测试结果看,Apache更有优势一点。这是因为处理动态数据能力取决于PHP和后端数据的提供服务能力。也就是说瓶颈不在web服务器上。

一般PHP引擎支持的并发参考值300-1000,JAVA引擎并发300-1000,数据库的并发300-1000.

5.3.3 为什么nginx的总体性能比Apache高。

    nginx使用最新的epoll和kqueue网络IO模型,而Apache使用床头的select模式。

目前Linux下能够承受高并发访问的squid、Memcached 都采用的是epoll网络IO模型。

5.3.4 如何选择WEB服务器:

静态业务:高并发、采用nginx,lighttpd,根据自己的掌握程度或公司的要求。

动态业务:采用nginx和Apache均可。

既有静态业务又有动态业务:nginx或Apache,不要多选要单选。

动态业务可以由前端代理(haproxy),根据页面元素的类型,向后转发相应的服务器进行处理。

思想:我们工作都不要追求一步到位,满足需求的前提下,先用,然后逐步完善。

提示:nginx做web(Apache,lighttpd)、反向代理(haproxy,lvs,nat)及缓存服务器(squid)也是不错的。

最终建议:对外的业务nginx,对内的业务Apache(yum httpd mysql-server php)。

六、nginx实战过程

6.1 安装依赖包

nginx安装依赖GCC、openssl-devel、pcre-devel和zlib-devel软件库。

Pcre全称(Perl Compatible Regular Expressions),中文perl兼容正则表达式,pcre官方站点。

yum install  pcre pcre-devel -y 

yum install openssl openssl-devel -y 

6.2 开始编译

使用./configure --help查看各个模块的使用情况,使用--without-http_ssi_module的方式关闭不需要的模块。可以使用--with-http_perl_modules方式安装需要的模块。

6.2.1 编译命令

tar -zxf nginx-1.10.1.tar.gz 

cd nginx-1.10.1/

./configure --prefix=/data/nginx-1.10.1 --user=nginx --group=nginx  --with-http_ssl_module  --with-http_stub_status_module

useradd nginx -M -s /sbin/nologin 

make && make install 

ln -s /data/nginx-1.10.1 /data/nginx

6.2.2 测试nginx配置文件是否正常

/data/nginx/sbin/nginx -t 

nginx: the configuration file /data/nginx-1.10.1/conf/nginx.conf syntax is ok

nginx: configuration file /data/nginx-1.10.1/conf/nginx.conf test is successful

6.2.3 启动nginx服务器

/data/nginx/sbin/nginx  -t  ##检查配置文件

/data/nginx/sbin/nginx      ##确定nginx服务

netstat -lntup |grep nginx      ## 检查进程是否正常

curl http://localhost           ## 确认结果

6.2.4 nginx其他命令

nginx -s signal

signal:

stop — fast shutdown

quit — graceful shutdown

reload — reloading the configuration file

reopen — reopening the log files

用来打开日志文件,这样nginx会把新日志信息写入这个新的文件中

/data/nginx/sbin/nginx -V 查看已经编译的参数。

使用kill命令操作nginx。格式:kill -信号 PID

信号名称

TERM,INT 快速关闭

QUIT 优雅的关闭,保持吸纳有的客户端连接

HUP 重启应用新的配置文件

USR1 重新打开日志文件

USR2 升级程序

WINCH 优雅的关闭工作进程

例子

kill -QUIT  `cat /data/nginx/nginx.pid`

kill -HUP `cat /data/nginx/nginx.pid`

七、nginx配置文件

配置基础配置文件

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

### 测试配置文件是否正常

shell> /data/nginx/sbin/nginx -t 

nginx: the configuration file /data/nginx-1.10.3/conf/nginx.conf syntax is ok

nginx: configuration file /data/nginx-1.10.3/conf/nginx.conf test is successful

shell> curl -I http://localhost

HTTP/1.1 200 OK

八、nginx监控

开启nginx的监控服务

8.1 开启状态页

#设定查看Nginx状态的地址   

location /status {  

  stub_status on;    #表示开启stubStatus的工作状态统计功能。

  access_log off;    #access_log off; 关闭access_log 日志记录功能。

  #auth_basic "status";    #auth_basic 是nginx的一种认证机制。

  #auth_basic_user_file conf/htpasswd; #用来指定密码文件的位置。

}

8.2 配置登录密码

yum install -y httpd-tools

/usr/local/apache/bin/htpasswd -c /data/nginx/conf/htpasswd biglittleant 

New password:

完成后会在/data/nginx/conf/目录下生成htpasswd文件。

猜你喜欢

转载自blog.csdn.net/teachermei/article/details/127425619
今日推荐