• nginx笔记(一)


    一、nginx版本

    开源版本主要有:

    mainline--含最新特性和及时的bug修复,以及一些试验性的组件和一些新bug;

    stable--不含最新特性,但含有重要的bug修复并跟随移植到相关的mainline版本。推荐生产环境使用。

    二、安装方式:

    (1)使用预编译的二进制包:此种方式最快捷;

    (2)通过源码编译成二进制包:最复杂,但能个性化;

    通过预编译的二进制包(以CentOS为例):

    支持的系统版本有:

    VersionSupported Platforms
    6.x x86_64, i386
    7.4+ x86_64, ppc64le
    8.x x86_64

     获取预编译二进制包方式:
    默认通过repository库,这是最快的方式,但提供的包一般是旧版本:

    sudo yum install epel-release  #安装epel包
    
    yum update  #更新repository
    
    yum install nginx  #安装nginx
    
    sudo nginx -v    #验证安装
    nginx version: nginx/1.6.3

    如果从官方nginx.org获取,则首先用yum设置官方库,这样能获取最新的安装包。

    vi /etc/yum.repos.d/nginx.repo  #编辑库来源文件
    
    #添加以下nginx.repo
    
    [nginx]
    name=nginx repo
    baseurl=https://nginx.org/packages/mainline/<OS>/<OSRELEASE>/$basearch/
    gpgcheck=0
    enabled=1
    
    #mainline元素表示从mainline获取最新版本,需要stable版本则删除此元素。
    #<OS>:填写rhel或者centos
    #<OSRELEASE>: 操作系统版本号(6, 6._x_, 7, 7._x_ and so on)
    
    #退出vi, 保存。
    
    yum update   #更新repo
    yum install nginx  #安装nginx
    $ curl -I 127.0.0.1   #验证安装
    HTTP/1.1 200 OK
    Server: nginx/1.13.8

     从源码编译和安装:

    在编译nginx源码之前,需要先安装独立的运行库:

    RCRE:用于支持正则表达式,nignx Core和Rewrite组件需要它。

    $ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.44.tar.gz
    $ tar -zxf pcre-8.44.tar.gz
    $ cd pcre-8.44
    $ ./configure
    $ make
    $ sudo make install

    zlib:支持头部信息压缩,nginx Gzip组件需要它。

    $ wget http://zlib.net/zlib-1.2.11.tar.gz
    $ tar -zxf zlib-1.2.11.tar.gz
    $ cd zlib-1.2.11
    $ ./configure
    $ make
    $ sudo make install

    OpenSSL:支持https协议,nginx SSL和其它组件需要它。

    $ wget http://www.openssl.org/source/openssl-1.1.1d.tar.gz
    $ tar -zxf openssl-1.1.1d.tar.gz
    $ cd openssl-1.1.1d
    $ ./Configure darwin64-x86_64-cc --prefix=/usr
    $ make
    $ sudo make install

    下载源码:

    #下载主线版本:
    $ wget https://nginx.org/download/nginx-1.17.9.tar.gz
    $ tar zxf nginx-1.17.9.tar.gz
    $ cd nginx-1.17.9
    
    #下载稳定版本:
    $ wget https://nginx.org/download/nginx-1.16.1.tar.gz
    $ tar zxf nginx-1.16.1.tar.gz
    $ cd nginx-1.16.1

    配置编译选项:

    $ ./configure

     具体的编译选项,参考官网:https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/?_ga=2.20119100.529167744.1587292980-45792041.1587182428#configuring-the-build-options

    编译安装:

    $ make
    $ sudo make install

    完成安装后启动:

    sudo nginx

    三、nginx进程

    nginx进程包含:一个主进程、一或多个工作进程。如果启用缓存还会出现缓存加载进程和缓存管理器进程。

    主进程作用:读取和测试配置文件有效性、维护工作进程;

    工作进程作用:对请求进行实际的相应处理,并通过 OS机制分配请求给相应的工作进程。

    控制nginx基本操作:

    nginx -s <signal>

    <signal>为:

    quit--优雅地关闭nginx

    reload--重载配置文件

    reopen--重新打开日志

    stop--立即关闭nginx

    四、nginx配置文件

    配置文件:

    默认文件名为nginx.conf,开源版Nginx的配置文件由安装时决定其位置,一般在以下位置:

    /usr/local/nginx/conf; /usr/local/etc/nginx; /etc/nginx

    指令:

    配置文件由一定数量的“指令”及其参数组成;单行指令以分号结尾,而相关指令组合在一起用{}括号围住,称为“块”。

    配置文件分类:

    为了更方便维护,可以将明确一类功能的配置分开文件存放,推荐存放在/etc/nginx/conf.d文件夹内,并在主nginx.conf配置中加入:

    include conf.d/http;
    include conf.d/stream;
    include conf.d/exchange-enhanced;

    语境:

    以下是一些顶级的指令,称之为”context"(语境、上下文),这些指令将应用于下面描述的各种流量类型:

    events--常规连接处理

    http--HTTP流量

    mail--Mail流量

    stream--TCP和UDP流量

    虚拟服务器:

       以每种流量处理语境中,你可以定义一个或多个 server 指令块来处理各种请求。

       在HTTP流量中(即http语境内),每个server指令块用于处理通过IP或域名传输过来的请求。而location指令块定义在server指令块内用于处理特定的URI。

       对于TCP/UDP和mail语境(即steam和mail指令),server指令用于处理指定TCP端口或UNIX socket的流量。

    继承:

        通常情况下,子指令会继承包含它的父指令的设置值,当然也可以在子指令中重定义设置来覆盖父指令设置值。

  • 相关阅读:
    你知道Synchronized底层实现原理嘛
    一篇搞定Java集合类原理
    lsp都要会的内存模型
    Sql Server 查询优化
    使用Windows的mstsc远程桌面连接到Ubuntu图形界面(AWS上安装的Ubuntu系统)
    AWS EC2实例Ubuntu系统设置root用户密码并使用root/ubuntu用户登录
    安装mysql.zip文件教程(包含常见问题修复)
    DevExpress GridControl小结
    C#开发必会
    C# 错误集锦
  • 原文地址:https://www.cnblogs.com/xiwang6428/p/12739654.html
Copyright © 2020-2023  润新知