##LNMPLinux Nginx MySQL Php

a) 由来: 

        

         Nginx Engine x ,俄罗斯人开发的,开源的WWW服务软件   一共780K

         本身是一款静态(HTML,JS,CSS ,JSP等)WWW软件

b) 优点: 

      

          0.配置简单,更灵活

          1.高并发(静态小文件)

          2.占用资源少,2W并发10个线程,内存消耗几百兆

          3.功能种类比较多(web ,cache,proxy),每个功能都不是特别强

          4.支持epoll 模型 使得NGINX 可以支持高并发

          5.nginx配合动态服务和apache有区别 

          6.利用nginx 可以对IP限速,可以限制链接数

          

c) 使用平台: UNIX,LIUNX,windos

        wKioL1caZQiTHpONAAFWx4IrVQg820.jpg

 

 d) Nginx应用场合 

         

         1.静态服务器(图片,视频服务),另一个lighttpd. 并发:1-3W

                 HTML,js,css,flv 

        2.  动态服务,nginx+fastcgi的方式运行php   并发:根据数据库和PHP服务(500-1500

                    apache+php   lighttpd+fcgi php

        3.  反向代理,负载均衡   PV2000W一下,可以直接用Nginx做代理

              方向代理,代替外边的客户向服务器访问  

             正向代理:客户端请求新浪网站,路由器(缓存服务)代理请求新浪的网站,然后在本地放一份,然后把结果给客户端

                 haproxy,F5,a10

                 

        4.缓存服务。SQUID  VARNISH 

        

e) Nginx和其他web服务器的对比

1) apache   

            

               1.2.2版本非常稳定强大

               2.Prefork 模式取消了进程创建开销,性能很高

               3.处理动态业务数据时,因关联到后端的引擎和数据库

               4.高并发时消耗系统资源相对比较多一些

               5.基于传统的select模型

               6.扩展库, DSOapxs    

               7.功能多,更稳定,更安全 ,插件也多

               

2) Nginx 

           

                  1. 基于异步IO模型(epoll,kquene),性能强,能够支持上万并发

                   2.对小文件支持很好,性能很高(限静态小文件)

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

                   4.消耗系统资源比较低

3)Lighttpd(百度贴吧,豆瓣)

                     

                    1.基于异步IO模型,性能和Nginx相近

                    2.扩展库是so模式,比Nginx要灵活

                    3. 全球使用率比较低,安全性没有上面两个好

                    4. 同过插件(mod_secdownload)可实现文件URL地址加密

4)性能对比测试

                   1.静态数据性能对比

                         wKioL1caZRrAF0nHAAKa1p3EIWc697.jpg

      小结:处理静态小文件(小于1M),nginxlighttpd apache更有优势,lighttpd最强 

                    2.动态数据性能对比

                       wKiom1caZGySCS1tAAL9VW7pG_Y046.jpg

 小结:当处理动态数据时,三者的差距不大,从测试结果来看,apache更有优势,这是因为处理动态数据的能力取决于Php h和后端数据库的提供服务能力。 php引擎支持的并发参考值300-1000java引擎并发300-1000,数据库的并发300-1000

 

<!-- 为什么Nginx 的总体性能比apache高?

        因为nginx采用的epoll网络I/o 模型  apache使用的是传统的select 模型 

           -->

**建议: 

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

    动态业务:采用nginxapache均可

    既有静态业务又有动态业务:NginxApache  不要多选要单选

     最终建议:对外的业务 NGINX 对内的业务 APACHE

    **


5)检查语法启动nginx

                  

                   /application/nginx/sbin/nginx -t

                   /application/nginx/sbin/nginx

                   lsof -i :80 查看端口

                    curl IP 地址 

            

6 启动故障排查

                        nginx:[emerg] getpwnam("nginx") failed 

                    解答: useradd nginx -s /sbin/nologin -M

               

           故障排查思想方法: 

                    1 ping 服务器IP  物理通不通 

                    2 telnet IP服务端口     浏览器到web服务器通不通 

                    3 wget 123.0.0.1 模拟用户访问,排除http服务自身问题

                    4 服务器本地curl  IP   WEB服务开没开

                


7 配置一个站点

       apache 默认站点目录的参数    

       Document 

           

8)  nginx基本配置

            1.Nginx core modules (必需的)

            main   events


9 日志切割

     cd /server/scripts/

     vi cut_nginx_log.sh

     

         cd /application/nginx/logs &&\

         mv www_access.log www_access_$(date+%F -d -1day).log 

         /application/nginx/sbin/nginx -s reload

                                

                                

                                

10http状态码  

        200正常

        301永久跳转

        403禁止访问 服务器拒绝请求

        404 找不到页面

        500 内部服务器出错了

        502 负载均衡,没有按照http协议返回

        503 服务当前不可用 可能因为超载和停机维护

        504  网关超时