Ngnix 安装与使用

高性能web服务器-ngnix

MySQL读写分离技术php

sphinx和mongodbhtml

课程内容简介

通常都是拿nginx做为负载均衡器使用。Apache仍是web市场老大。全球的市场份额大概在(60%),可是全球前 top1000 的web网站中,nginx占据首位。linux

 

内容nginx

重要性c++

nginx简介web

sql

常见web服务器分类mongodb

数据库

哪些地方在用nginxvim

ngnix的安装(Linux下)

※※

lnmp搭建(lamp

※※

ngnix负载均衡器配置(工做)

※※

扩展知识(tengine 淘宝)

 

nginx简介

nginx是一个高性能的web服务器,同时也是一个邮件代理服务器,同时仍是一个负载均衡器

1. web服务器:相似Apache(httpd)提供web服务器(用的其次)

2. 邮件代理服务器:主要用来作邮件的转发(nginx早起的设计也是为了邮件转发,初衷,用的最少)

3. 负载均衡器:用来转发用户的web请求,给web服务器来处理(尤为是在均衡器的时候,有其独特的优点,这也是目前互联网用它最多的地方)

 

负载均衡器:软件和硬件

软件:nginx(七层,简单配置)和lvs(四层,功能强大)

硬件:f5 (游戏和银行)

 

负载均衡集群:由负载均衡器组成的集群就是负载均衡集群

集群:就是多台服务器为了完成某一个相同的任务而组成的架构。(多台服务器完成)

若是给服务器集群增长一个备用的监控(高可用集群)

高可用集群衡量的标准:一年中无端障的时间/(一年中无端障的时间+修复的时间)

通常是9的数量来衡定。若是没有修复(100%) 99.9% 99.99% 99.999%

若是是5个9 一年下来故障的时间大概就是 5 分钟。

 

 

建议:游戏公司、电商公司

游戏公司:转岗(php开发、Linux管理、MySQL、自动化运维、erlang 热备份)-》大数据

电商公司:纯开发新的系统,主要是功能的开发和维护。

建站公司:若是技术相对来讲较弱。

微信:相对来讲不建议去了。(微信分销系统)

 

【------内存----】 软件(操做系统)开机--- 自举 BIOS(cmos硬件设备---生产商写入一段代码 读)---硬盘(分区 MBR 主引导记录--- 分区信息--操做系统C盘)

格式化磁盘(数据所有存在)----- 使用专门的工具--- 0 1 重写

 

nginx是由俄国人开发,也开发卡巴斯基杀毒软件。还开发了一个叫作sphinx的软件(中文分词搜索)。

因为其性能很是优越,因此在中国的淘宝公司对其作了二次开发,造成了一款更适合在国内使用的web服务器,叫作tengine(web服务器)。目前不少国内大型站点,基本都是使用的tengine。

网站:http://tengine.taobao.org/

http://hustskyking.cnblogs.com/

 

 

问题:为何nginx(tengine)可以有很是好的性能,支撑更大的并发访问?

对于1u服务器(2w---dell服务器 性价比最高)这样的服务器使用nginx支撑静态的并发请求大概在3-5w并发没问题。

 

主要因为其架构设计的合理。而且因为Apache是早起的web服务器,压根就没有考虑大并发。而nginx是后期之秀,其设计的初衷也是为了大并发,主要解决了c10k的问题。

设计:epoll event 基于事件回调模型

 

 

问题:什么是C10k?

答:c:并发,意思就是当网站的并发数量达到10k以上,这个时候网站总体的性能就会急剧降低,须要使用新的的架构来设计(基于事件模型 event),nginx应用而生。

参考:http://blog.csdn.net/jysg9/article/details/7901321

http://rdc.gleasy.com/%E5%A6%82%E4%BD%95%E5%81%9A%E5%88%B0c100k_1.html

http://joyexpr.com/2013/11/22/c100k-4-kernel-tuning/

 

 

 

常见web服务器的分类

  1. httpd:Apache,是一款很是稳定的web服务器,而且它是基于模块而设计(php,rewrite。。。),可是有一个弊端,就是使用的内存开销很是大
  2. nginx:后期,其主要特性仍是用于 负载均衡器和web服务器。在处理并发的问题上,尤为独特的优点,可是有一个弊端,相对不是很稳定。使用的内存开销很是小,处理1000个非活动的连接,大概须要不要2M的内存。
  3. lighttpd(小型):主要用于作 图片服务器。早期的豆瓣是有使用。
  4. tomcat:这个是Java
  5. IIS:Windows的一个web服务器,常和Windows server 和 sql server一块儿使用

     

    Apache为何这么流行:主要

  6. 早期开发的,不少系统基于它开发,不便于作更换。
  7. 早期开发,模块众多(php 、Rewrite、header。。。。),文档齐全
  8. Apache很是的稳定。

    明白:不少公司在效率和稳定性须要选择的状况下,有限考虑的是稳定性。

     

    问题:nginx能够取代Apache服务器吗?

    问题:nosql数据库能取代关系型数据库(MySQL)吗?

    答:nginx从目前来看,是没法取代Apache这类web服务器。主要是因为Apache很是稳定模块众多,而且已经拥有强大的市场。只能说着两个产品能够相辅相成的工做。谁都离不开谁了。

     

    哪些地方在使用?

  9. 淘宝(tengine)
  10. 搜狐
  11. 网易
  12. 赶集

    cdn的使用

    tengine使用

    淘宝使用

    nginx搭建使用

    在Linux下作源码编译安装

    注意:

  13. nginx的安装须要依赖pcre库,因此须要先安装

    # pcre库安装下,须要注意,安装这个库文件的时候,不须要指定安装路径 ./configure 便可

  14. 检测一下操做系统的 80端口是否被占用

    # netstat -tunple | grep 80

    # ps aux | grep httpd

  15. 关闭一下防火墙和selinux

    # iptbales -F (flush 刷新)

    # setenforce 0

    上面两种方式都是暂时关闭

     

     

    编译安装

  16. 下载代码

    官网:http://nginx.org/en/

     

  17. 上传nginx源码和pcre库源码

    注意:a. vsftpd是否开启

    # service vsftpd status

    # service vsftpd start | stop

     

    b. 防火墙是否关闭

    # iptables -L 查看

    # iptables -F 关闭(F -- flush)

    # service iptables stop 关闭

    # service iptables stop 关闭防火墙

    c. selinux是否关闭

    selinux 是Linux下的一个安全管理软件,因为其安全级别很是高。(建议关闭使用)

    # getenforce 查看

    # setenforce 0 关闭

    注意:这个关闭时基于会话。(只针对当前用户生效)

    有时候须要全局生效,对全部的用户所有生效

    解决方案:更改配置文件便可

    可使用

    # file fileName 查看文件类型

    关闭selinux

    # cd /etc/selinux/

    # ls

    # vim config

    查看

    修改

     

    1. 上传文件

       

     

    1. 将源码文件移动到(/usr/local/src/)

      # cd /home/NAME

      #cp nginx-1.8.0.tar.gz pcre-8.34.tar.gz /usr/local/src/

      源码目录:

    2. 编译安装,pcre库,解压

      查看

    3. 编译安装pcre ( 不须要指定安装路径

      # ./configure

      # make 编译

       

      # make install

       

    4. 安装nginx软件

      解压

      # tar -zxvf nginx-1.8.0.tar.gz

       

      编译安装

      # ./configure --prefix=/usr/local/nginx 收集操做的信息(检查c++编译器是否存在)

     

    # make

        # make install

    安装成功,查看

     

        8. 启动服务

    注意:启动的时候须要检查 80 端口是否占用

    浏览器查看

     

    注意:没有浏览器的状况下,可使用

    # curl -I http://localhost

    -I 响应头

    目录简介

    注意:一旦这个服务启动,会额外生成不少文件和文件夹

    注意:若是服务器启动后,再其次启动会怎么样?

    解决方案:关闭或者重启

     

    目录相关:

    备份配置文件

    查看配置文件内容(格式)

    mime.types

    ActiveX脚本还有flash

    长链接

    虚拟主机配置:

    目录

    httpd段:

    安全传输

     

     

    虚拟主机的配置(基于IP的虚拟主机)

    注意:互联网上全部的服务都是基于TCP/IP的连接,而后根据端口区分服务

  18. 输入地址
  19. 作DNS解析
  20. 根据IP地址访问主机(创建TCP/IP连接)
  21. 而后访问端口
  22. 开始根据协议传递文件(http)
  23. 服务器端构建响应报文
  24. 传递
  25. 浏览器解析
  26. 浏览器渲染
  27. 见到信息

     

  28. 增长server段配置

     

  29. 语法检测

    # /usr/local/nginx/sbin/nginx -t    

  30. 重启nginx

    注意:nginx的好处在于,重启能够直接不关闭服务器状况下,直接读取配置文件信息。

    # /usr/local/nginx/sbin/nginx -s reload 从新加载配置文件,可是不关闭服务

     

  31. 建立网站根目录

     

  32. 浏览器访问

     

    lnmp搭建

    注意:php也能做为一个单独的服务来运行,这种运行的模式叫作php-fpm模式,不在做为Apache一个模块使用。有单独的进程,端口,至关于一个软件运行。

     

    php的fpm运行方式:使得php能够单独的做为一个服务运行,而不用做为一个模块被加载后才能使用。做为独立服务的时候,使用的端口是 9000 端口。nginx请求动态文件和 php-fpm服务通讯的时候 使用的协议为 fast-cgi 协议

    cgi:common getway interface

     

  33. Linux
  34. nginx
  35. MySQL(不用)
  36. php搭建

     

    php-fpm运行方式搭建

    注意:php-fpm须要 php-5.3.12之后的版本默认是支持

    以前其余的版本须要打补丁。

  37. 下载php源码
  38. 上传(/usr/local/src/)

  39. 解压和安装

    编译

    # ./configure --prefix=/usr/local/php --enable-fpm

    # make

     

    #make install

     

     

    修改nginx的配置文件,能够去调用php-fpm方式

  40. 修改nginx配置文件

    php脚本的动态文件目录是本身能够随意的设定的。

     

  41. 从新读取配置文件

    -s signal 信号 reload 信号

    # /usr/local/nginx/sbin/nginx -s reload

     

  42. php-fpm目录查看

    注意:直接启动报错,须要知道配置文件信息

    解决方案:

  43. 启动php-fpm模式

     

    查看是否成功启动

     

  44. 修改nginx的配置文件,而且从新载入

     

  45. 建立动态脚本的访问目录

  46. 浏览器查看

    注意:有一个php.ini配置的问题

    解决:去源代码包copy便可

    解决现实:

     

    负载均衡器使用

    能够去处理web请求,将web请求分发给多个web服务器来响应的软件或者硬件

     

  47. 建立两台虚拟主机

    基于IP的

    81端口

    82端口

     

    注意:理论上来讲,81主机和82主机的网站根目录里面的内容应该一致。默认是基于轮询的方式

    能够修改成基于ip_hash的方法

    tengine的搭建使用

    tengine是由淘宝发起一个基于nginx的web服务器,作了二次开发

    官网:http://tengine.taobao.org/

    参考文档:http://tengine.taobao.org/book/chapter_05.html

     

    安装

  48. 下载

     

  49. 上传

  50. 编译安装

  51. 使用

    目录查看

  52. 启动

    注意:检测端口 80

    查看

    网站根目录

     

    其余命令和nginx彻底同样

     

    扩展

  53. lnmp搭建相对来讲比较复杂

    网站:http://lnmp.org/

     

  54. 中文文档
  55. 看淘宝的tengine:http://tengine.taobao.org/
  56. 中文站点:http://www.nginx.cn/doc/

     

  57. tengine 目前在国内的市场很大

    网站:http://tengine.taobao.org/

相关文章
相关标签/搜索