• Nginx 详解与安装


    一,Nginx  简介:

    1,Nginx是一款优秀的Web服务软件,他的优点是方便,简单,灵活,是一款极具发展潜力的Web服务器。

    2,nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件

    3,nginx具有三大功能(服务)

            (1)可以充当Web服务器。(作为Web服务软件)

    (2)还可以充当负载均衡 。(反向代理或负载均衡服务)  Web服务器前边就是负载均衡

    (3)还可以当缓存服务器。(前端业务数据缓存服务)就做一个Web缓存图片视屏静态缓存

    4,特点:是支持高并发,对静态的处理非常好。 内存存储占用小。

    (1),Nginx很好用很小,但是越这样的越难开发,它是通过一种叫异步I/O事件模型来实现的。叫做epoll

                Nginx是通过epoll模型来实现的外部服务。

    (2),Nginx总体性能要高于Apache,因为Nginx承接单个用户需要的系统资源少,所以从并发来说,Nginx要比Apache有更大的并发量。(如果只作为Web服务器来说中小企业用的Nginx更多一些,大企业局部是Nginx)

    (3), Apache  用的是select模型, 这是同步IO网络模型  (用户太多了受不了,为什么大企业还用呢? 使用负载均衡,就是添加Apache数量。)、

              Apache   处理的连接数最多不超过1024个。(而且要从新编译)

    Nginx    用的是epoll模型 ,这是异步网络I/O模型(随着用户的增加,性能上基本没有变化,性能很好。)

    Nginx     处理的连接数是无限制

    显然开发epoll模型比较难, select开发比较简答

    5,同步I/O,异步I/O

          (1),进程产生的线程,线程是干活的。

          (2),国内的游戏之所以垃圾,其都是单线程,只能干一件事,并且速度有I/O阻塞。

           (3),单线程和多线程都叫同步阻塞I/O模型,必须一件事一件事干,同步就是这一件事没干完前,就得等它。这就是select模型

    (4)异步I/O模型也叫非阻塞模型。就是Nginx的epoll模型。

           Nginx可以启很多线程,每个线程能干无数个事

         (5)异步就是在单线程内开启多个服务,一个未完成不用等,开启另一个,同一时间可以干多件事。这就是异步I/O模型的原理。

    二,编译Nginx

       1,(1)从桌面把Nginx(nginx-1.10.2.tar.gz)包放在root下

           (2)先安装支持包。 用yum安装(别忘挂盘)

          (3)#yum -y install pcre-devel openssl-devel

         这两个支持包必须有pcre-devel和openssl-devel

     (4)# tar xf nginx-1.10.2.tar.gz -C /usr/src

              解压这个文件包(nginx-1.10.2.tar.gz)指定放在/usr/src 下

              之后过去

              #cd /usr/src/nginx-1.10.2/

    (5)先创建一个程序用户#useradd –s /sbin/nologin –M www                 

      用户名是www创建在了/sbin/nologin目录下,不能shell登录此用户。

    (6)先安装编译支持软件

             #yum –y install gcc gcc-c++ make automake

    然后开始编译#

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

    (7)然后编译安装

    #make && make install

    (8)#cd /usr/local/nginx/ 进入ls里边有四个目录

    Conf(配置文件)  html(网页目录)  logs(日志) 

    Sbin(系统管理员使用的管理程序)

    (/usr/local下一般是你安装软件的目录)

    (9)#cd conf/   先进入conf目录.   #ls看一下。

              nginx.conf这就是配置文件。

              nginx.conf.default和它的备份。

              这个文件里边装的都是媒体类型。

    (10)现在开始配置nginx.conf文件

    首先看下nginx.conf文件内多少行

    #cat nginx.conf | wc –l

    之后去掉内容的#号和 空格 从它的默认备份文件写回到配置文件

    # egrep -v "#|^$" nginx.conf.default > nginx.conf

    (11)#vim nginx.conf   

     

    这行可以先暂时去掉这是报错页面。

     

    就这18行就可以搭载Web服务了。

     

    (12)接下来一行一行的认识下。

    1 worker_processes  1;      → Nginx工作的进程个数 这是1个

      2 events {                 →   2到4行事件函数  第3行进程里的线程个数               

      3     worker_connections  1024;     

      4 }

      5 http {      → 5行以下都是http函数内容(整个函数里边就是Web服

                                                         务Web服务就在这个模块)

      6     include       mime.types;   →(include导入的意思,把

    mime.types所有内容引导到当前行当前的配置文件)

                  

      7     default_type  application/octet-stream;

      8     sendfile        on;      →(文件的高效传输默认就是开的sendfile发送文件)

      9     keepalive_timeout  65;  →(连接保持功能持续65秒,

    Keepalive保持   timeout超时)

    10     server {   →(10到17行又是一个函数,是http的子函数,一个server代表一个虚拟网站。一个网站搭一个server,两个就再搭建一个server)

     11         listen       80;    →(socket进程的监听端口)

     12         server_name  localhost;       →(域名 网站名 主页名)

     13         location / {

     14             root   html;        →(网站的网页从哪开始从一个叫html目录下边开始算我的网站的根,root根的意思,从html开始算我的网页目录,网页的根目录路径)

     15             index  index.html index.htm;   →(index索引的意思就是首页,这行指的是指定网站的首页是哪个网页名。)

     16         }

     17     }

     18 }

    (13)什么叫做连接保持如TCP三次握手,过程中断了这进程结束,但连续保持就是TCP连接保持还在建立着我等你再发请求,就不用频繁建立三次握手了,这样节约系统资源,要不然服务器老得跟我进行三次握手对服务器是个损耗。所以这个功能在服务器遭遇大并发时打开,这样就可以降低三次握手带来的成本消耗。阿帕奇因为他的接待能力太低了有可能就要关。 Nginx 第9行这不用关。

  • 相关阅读:
    Oracle Golden Gate
    DNS
    RMAN 管理
    黄伟-RAC生产库现场调整本分策略实战
    Linux下RAID技术
    OCP之黄伟 2
    About NULL Value
    OCP之黄伟
    Table
    Perl的简单变量
  • 原文地址:https://www.cnblogs.com/changtianwei/p/9948286.html
Copyright © 2020-2023  润新知