Nginx服务器安装部署简记

1.得到最新版本的Nginx服务器javascript

  Nginx三种版本:1 开发版 Development  2稳定版 Stable version 3 过时版本 Legacy versionshtml

2.安装nginx准备,linux安装须要先对源代码进行编译。java

  GCC编译器,全程为(GNU Compiler Collection),编译源代码使用linux

  Automake 工具,用来完成自动建立Makefile的工做。Makefile是make命令的配置文件nginx

    另外,不须要使用autoconf工具,Nginx软件的自动脚本不是用autoconf生成的,是做者手工编写的。c++

  pcre库 正则表达式 用来支持rewrite模块正则表达式

  zlib库,支持gzip模块,压缩相关缓存

  openssl库,支持ssl模块(ssl安全套接层)安全

  相关命令 服务器

    yum  -y install gcc gcc-c++

    yum -y install automake

    yum -y install pcre pcre-devel

    yum -y install zlib zlib-devel

    yum -y install open openssl-devel

  复制地址连接  下载 wget http://nginx.org/download/nginx-1.12.2.tar.gz

3.编译安装 Nginx

  解压Nginx归档文件 tar xf nginx-1.12.2.tar.gz

  生成Makefile 文件  ./configure --prefix=/Nginx

  make

  make install

4.Nginx启动中止控制

  控制信号

    kill [SIGNAL] [PID]
    kill [SIGNAL] [nginx.pid路径]

  帮助 ./nginx -h

  启动 ./Nginx 无任何输出表明启动成功

  关闭  方法一:./Nginx -g TERM | INT | QUIT     (TERM|INT 快速中止,QUIT用平缓中止)

      方法二:kill TERM|INT|QUIT '/Nginx/logs/nginx.pid'

      方法三:kill -9 | SIGKILL '/Nginx/logs/nginx.pid' 不建议这样使用

  平滑重启 ./nginx -g HUP [-c newConfFile]

        kill HUP ‘/Nginx/log/nginx.pid’

        HUP 平滑重启的信号

  平滑升级

      步骤1,./Nginx/nginx -p newInstallPath 切换Nginx的安装路径为新的

      步骤2,./sbin/Nginx -g USR2   USR2用于平滑升级 用ps -ef |grep nginx 查看新的Nginx是否启动正常 

          或者 kill USR2 ‘/Nginx/logs/nginx.pid'

      步骤3,./sbin/Nginx -g WINCH 用于平滑中止旧的服务信号

          或者 kill WINCH ‘/Nginx/logs/nginx.pid’

 

5.nginx配置

  全局块 做用域是nginx服务器全局 包括 用户(组),容许生成的worker process 数,Nginx PID存放路径 日志存放路径和类型 以及配置文件的引入。

  event块     主要影响Nginx服务器与用户的网络链接。经常使用的入 是否开启序列化,是否容许同时接收多个网络链接,选取哪一种时间模型处理链接请求,每一个worker process 能够同时支持的最大链接数。

  HTTP块 代理 缓存 日志定义 等绝大多数功能和第三方模块的配置均可以放在这个模块中

  server块 和虚拟主机的概念有着密切的联系,

  location块 基于Nginx服务器接受请求字符串,对除了虚拟主机之外的字符串进行匹配,对特定请求进行处理。

  具体

  配置运行Nginx服务器用户(组)

   user user [group] 

    user 制定Nginx服务器的用户

    group 可选项 制定能够运行Nginx服务器的用户组

  只有被设置的用户或用户组才能启动nginx

  若是但愿全部的用户均可以启动Nginx进程,一种方法是将此行注释掉,一种是将用户和用户组设置为nobody

     配置容许生成worker process数

  worker_processes number |auto 

    number 制定Nginx最多能够产生的worker process 数

    auto Nginx自动检测

  配置Nginx进程的PID存放路径

    pid file

  配置错误日志的存放路径

    error_log file | stderr [debug|info|notice|warn|error|crit|alert|emerg]

      stderr (输出到标准错误输出)

  配置文件的引入 

    include file

  设置网络链接的序列化

    应对 惊群 效应

    accept_mutex on |off

      on 为开启状态 只能在event块中使用

    将会对多个Nginx进程接受链接进行序列化,防止多个进程对链接争抢

 

  ps 如何解决惊群效应,在接受端的内部设置一个变量,维护是否能够接受的状态。

  设置事件驱动模型的选择

    use method 

      method 有 select poll kqueue epoll rtsig /dev/poll eventport 

  配置最大链接数  

    worker_connections number 

      number 默认值是512

  定义MIME_Type

    include mime.types;

    default_type application/octet-stream;

 

    types{

      text/html  html htm shtml;

      image/gif gif;

      application/x-javascript js;

      audio/midi mid midi kar;

      video/3gpp 3gpp 3gp;

    }

 

  自定义服务日志

    access_log path [format[buffer=size]]

    log_format name string 

    例子

    access_log logs/access.log combined;

    log_format combined '$remote_addr - [$time_local] $request '

              '$status $body_bytes_sent $http_referer'

              '$http_user_agent'

              

  配置容许sendfile方式传输文件

    sendfile on |off

      设置为on表示启动高效传输文件的模式。sendfile可让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据。若是这个参数不开启,

      会先在用户空间(Nginx进 程空间)申请一个buffer,用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer,

      再用write函数把数据从用户空间的buffer写入到内核的buffer,最后到tcp socket。开启这个参数后可让数据不用通过用户buffer。

    sendfile_max_chunk size 

        size 为0为无限制

  配置连接超时时间

    keepalive_timeout timeout [header_timeout]

    timeout 服务器对链接的保持时间 默认值为75

    例子:keepalive_timeout 120s 100s 服务器保持链接的时间设置为120s,发给用户端的应答报文头部中的keepAlive域的超时时间设置为100s。

    

  单次请求数上线

    keepalive_requests number;

    限制用户经过某一个链接想Nginx服务器发送的请求次数。

  配置网络监听(配置指令复杂,使用简单)

    配置监听哪一个端口 

    listen *:80 | *:8080

  基于名称的虚拟机配置

    server_name name

  基于IP的虚拟主机配置

  配置location块

  配置请求的根目录 

  更改location的URI

  alias path

  设置网页的默认首页

  index

  设置网页的错误页面

  error_page 404 /404.html

  基于IP配置Nginx的访问权限

  

  基于密码配置Nginx的访问权限

相关文章
相关标签/搜索