Nginx知识点笔记记录一

一:Nginx简介

  1.   Nginx的产生
      Nginx是一款高性能的 HTTP 和反向代理服务器,由俄罗斯人Igor Sysoev(伊戈尔·赛索耶夫)为俄罗斯网
      站Rambler.ru开发的,在Rambler.ru网站平稳的运行了四年,而且俄俄罗斯超过20%的虚拟主机平台采用
      Nginx作为反向代理服务器。
              在国内,使用nginx网站用户有:百度、京东、金山爱词霸、新浪、校内网、、淘宝、YUPOO相册、
              豆瓣、迅雷看看、网易、腾讯等。
  2. Nginx的优点
      ⑴高并发量:根据官方给出的数据,能够支持高达 50,000 个并发连接数的响应
      ⑵内存消耗少:处理静态文件,同样起web 服务,比apache 占用更少的内存及资源,所以它是轻量级的     
      ⑶简单稳定:配置简单,基本在一个conf文件中配置,性能比较稳定,可以7*24小时长时间不间断运行
      ⑷模块化程度高:Nginx是高度模块化的设计,编写模块相对简单,包括 gzipping, byte ranges, chunked 
                                   responses,以及 SSI-filter 等 filter,支持 SSL 和 TLSSNI。
      ⑸支持Rwrite重写规则:能够根据域名、URL的不同, 将HTTP请求分发到不同的后端服务器群组。
      ⑹低成本:Nginx可以做高并发的负载均衡,且Nginx是开源免费的,如果使用F5等硬件来做负载均衡,
                        硬件成本比较高
      ⑺支持多系统:Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、
                               FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows,由于Nginx是免费开源的,
                               可以在各系统上编译并使用。
      
  3. Nginx的缺点
      ⑴动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,
                               现在一般前端用nginx作为反向代理抗住压力,apache作为后端
                               处理动态请求。
      ⑵rewrite弱:虽然nginx支持rewrite功能,但是相比于Apache来说,Apache比nginx 的rewrite 强大。

二:Nginx的编译与安全

  1.   下载稳定版本的Nginx(Linux环境CentOS7) 
       Nginx知识点笔记记录一_第1张图片      
  2. 使用命令:wget+下载地址
      Nginx知识点笔记记录一_第2张图片
  3. 解压Nginx的安装包
      命令:tar zxvf +压缩包名称
      
      Nginx知识点笔记记录一_第3张图片
  4. 安装并且指定Nginx安装路径的命令
      ⑴首先我们需要进入Nginx的安装包目录下
           Nginx知识点笔记记录一_第4张图片
       ⑵基于上面路径的安装命令
            ./configure --prefix=要安装到的路径
            Nginx知识点笔记记录一_第5张图片
            通过上面命令的安装发现检查没有通过,缺少了PCRE library(这个就是正则表达式的库)。
            那么我们就先把这个PCRE安装上就可以了。
            安装命令:yum install pcre
                   Nginx知识点笔记记录一_第6张图片
            那么应该就是缺少pcre-devel,需要我们下载这个
            安装命令:yum install pcre-devel
                  Nginx知识点笔记记录一_第7张图片
            注意:可能还会出现zlib library没有那么就需要安装 yum install zlib-devel安装包
            安装好之后我们再一次运行上面安装Nginx的命令:
                   
            安装OK如下:
                   Nginx知识点笔记记录一_第8张图片     
  5. 下面还需要编译Nginx
       命令:make && make install
       
       Nginx知识点笔记记录一_第9张图片
       Nginx知识点笔记记录一_第10张图片
  6. 下面我们需要启动nginx
       ⑴首先我们需要进入到安装的目录下
           Nginx知识点笔记记录一_第11张图片
           conf:配置文件
           html:网页文件
           logs:日志文件
           sbin:主要的二进制程序
       ⑵启动如下
            命令:./sbin/nginx
             Nginx知识点笔记记录一_第12张图片
  7. 检查Nginx是否启动OK
      命令:./sbin/nginx -t
       
      效果:
        Nginx知识点笔记记录一_第13张图片

三:Nginx的信号量

  1.  Nginx的信号控制
     Nginx知识点笔记记录一_第14张图片 
     QUIT:优雅的关闭进程,即等请求结束后再关闭    
     ⑴ 使用INT控制实例
          a:查看当前nginx进程
                Nginx知识点笔记记录一_第15张图片
          b:现在我们强制的关掉nginx线程(关掉主线程的话,子线程也会自动关闭)
                Nginx知识点笔记记录一_第16张图片
      ⑵使用HUP 实例(修改配置文件后,不需要重新启动nginx,只需要使用HUP命令,就可以重新使配置文件生效)
          a:首先我们在nginx的html目录下创建一个test.html和nginx本身的index.html文件同目录
                Nginx知识点笔记记录一_第17张图片
         b:修改目录/opt/nginx/conf下的nginx.conf文件,让nginx默认读test.html
                 Nginx知识点笔记记录一_第18张图片
         c:我们现在没有重启nginx,查看网页效果
                 Nginx知识点笔记记录一_第19张图片
                使用命令:kill -HUP +主进程PID
                Nginx知识点笔记记录一_第20张图片
                效果:
                 Nginx知识点笔记记录一_第21张图片
       ⑶使用USR1实例
            Linux文件系统在向文件写数据的时候,不是根据文件名来做标识的,而是根据inode,
            就是如果将nginx的日志文件access.log改了别的名字(access.log.bak),nginx日志
            还是会写到access.log.bak文件中,如果使用kill USR1 xx(nginx master pid),nginx会
            重新的生成新的日志文件,而不再将日志数据写入到access.log.bak文件中。
          a:首先我们查看access.log文件
                 Nginx知识点笔记记录一_第22张图片  
         b:我们将文件名修改为access.log.bak,并且为它重新建立一个access.log文件
                Nginx知识点笔记记录一_第23张图片
         c:再次刷新页面看看效果
                Nginx知识点笔记记录一_第24张图片
         d:下面我们使用命令解决这个问题
                命令:kill -USR1 +主进程PID
               Nginx知识点笔记记录一_第25张图片
  2. 小技巧
      在使用kill命令时,如果想将pid用别的方式代替,其实在logs目录下,nginx.pid就是
      存放nginx master pid,所以kill -HUP nginx master pid  ==  kill -HUP  `cat nginx.pid`
    (注意:这里的引号是单反引号)



    文章目录

你可能感兴趣的:(nginx)