2..Nginx基础配置解析

最基础的配置模板:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.1构造分析

1.全局块
  • 全局块一般是从文件开头到events块之间的区域,用来设置一些影响Nginx服务器整体运行的配置指令;
  • 全局块配置的指令作用域是Nginx服务器全局;
2.events块
  • 主要配置内容(Nginx服务器与用户的网络连接)

    • 设置是否开启多worker process下的网络连接序列化
    • 是否允许同时接收多个网络连接
    • 选取哪种驱动模型处理连接
    • 每个worker process 可同时支持的最大连接数等
3.http块

代理、缓存、日志定义等绝大多数功能及第三方模块配置的模块;

4.server块

4.1 server功能

server块位于http块之中,每个server块可当成是一个虚拟主机,使得我们只需运行一组nginx就可以访问多个网站。

4.2 虚拟主机

  • 从用户角度看,一台虚拟主机就是一台独立硬件主机,并且一台虚拟主机能够服务多个用户,也就是一台虚拟主机起到了多台硬件主机的功能;
  • 功能上能够将一项或多项服务功能提供给多个单位(即实现了一台虚拟主机服务多个单位)

4.3 server全局域

常用配置:本虚拟机监听端口、名称/IP配置

5.location块

每个server可以有多个location,Nginx灵活性的重要体现。

主要作用

  • 基于Nginx接收到的请求字符串进行匹配、处理(定向、数据缓存、应答控制等),许多第三方模块功能也是在location中实现。

3.2主要配置选择

  • server_name匹配规则

    完整匹配 完整的网站 www.xxx.com

    通配符前置匹配 : *.mmban.com

    通配符结束匹配 : www.bbb.*

    正则匹配

在这里插入图片描述

  • 反向代理配置

在这里插入图片描述

  • 负载均衡配置

在这里插入图片描述

  • 轮询权重相关配置

在这里插入图片描述

  • 动静分离配置

在这里插入图片描述

  • URL Rewrite 配置

在这里插入图片描述

image.png

-   防盗链 配置

image.png

在这里插入图片描述

    > -   curl测试
    >
    > 安装指令: `yum install -y curl`
    >

在这里插入图片描述

3.3其余配置

[] :表示可选项

| :表示 或者

注意配置语法后面都要加 ;

1.配置Nginx服务器用户组
  • 说明:只有被设定的用户才有权限启动Nginx,其他用户尝试启动会报错。
  • 语法:user xx [group];
  • xx:要设置的用户
  • group:可选项,指定的用户组

取消该设置:user nobody nobody / 命令加上 # 注解掉

  • 配置区域:全局
2.配置允许生成的worker process 数
  • 说明:实现并发处理服务的关键:值越大,支持并发处理量越多,但受限于软件本身、操作系统本身资源等;
  • 语法:worker_process number |auto;
  • number:最多可产生的worker process (默认值为1)
  • auto:设置此值,Nginx进程会自动检测
  • 配置区域:全局
3. 配置进程PID存放路径
  • 说明:保存当前运行程序的主进程号
  • 语法:pid file;

file:指定存放路径及文件夹(可以是绝对路径/相对路径,若是文件夹不存在会报错)

eg: pid sbin/web_nginx (默认路径是Nginx安装目录logs下的nginx.pid)

此时的相对路径是安装目录sbin,即将其放到 安装目录sbin下,文件名为 web_nginx

  • 配置区域:全局
4. 配置错误日志存放路径
  • 说明:nginx服务器的日志支持输出到某一固定file或是输出到标准错误输出stderr,日志的级别是可选的,从低到高(debug—> emerg),高级别的日志包含了低级别日志的内容。
  • 语法:error_log file | stderr [debug|info|notice|warn|error|crit|alert|emerg];

nginx默认日志存放及级别:error_log logs/error.log error

  • 配置区域:全局、http、server、location
5.配置文件引入
  • 说明:将其他Nginx配置/第三方模块的配置引入到当前的主配置文件中
  • 语法:include file;

file:引入的文件,支持相对路径

  • 配置区域:任意
6.设置网络连接的序列化
  • 说明:防止一个网络连接唤醒多个nginx进程,但最终只有一个进程有用

  • 语法:accept_mutex on|off;

    默认是 on(开启)状态

  • 配置区域:events

7.设置是否允许同时接收多个网络连接
  • 语法:multi_accept on|off;

    默认为 off(关闭):每个worker process 一次只能接收一个网络连接

  • 配置区域:events

8.事件驱动型选择

语法:use method;

可选内容:select、poll、kqueue、epoll、rtsig、/dev/poll 以及 eventport

9.配置最大连接数
  • 说明:配置每个worker process允许开启的最大连接数

  • 语法:worker_connection number;

    number:默认值为512(不仅是包括和前端用户建立的连接数,还包括所有可能的连接,不能大于操作系统支持打开的最大文件句柄数量)

  • 配置区域:events

10.配置连接超时时间
  • 说明:用户建立会话连接后的保持时间

  • 语法:keepalive_timeout xxx[header_timeout];

    xxx:保持时间

    head_timeout:可选项,在应答报文头部的Keep-Alive域设置超时时间:“Keep-Alive:timeout=header_timeout”。报文中的这个指令可以被Mozilla或Konqueror识别。

    eg:keepalive_timeout 120s 100s; 【在服务端保持连接时间为120s,发给用户的应答报文头部中Keep-Alive域的超时时间为100s】

  • 配置区域:http、server、location

11.单连接请求数上限
  • 说明:限制用户通过某一连接向Nginx发送请求的次数,默认是100
  • 语法:keepalive_requests number;
  • 配置区域:server、location
  1. 配置网络监听
  • 语法:listen port [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size][accept_filter=filter][deferred] [bind][ssl]

    default_server:标识符,将此虚拟机设置为address:port的默认主机

    setfib=number:监听socket关联路由表(不常用)

    backlog=number (设置监听函数listen()最多允许多少个网络连接同时处于挂起状态,FreeBSD中默认为-1,其余平台默认为511)

    rcvbuf=size:设置监听socket接收缓存区大小

    sndbuf=size:设置监听socket发送缓存区大小

    deferred:标识符,将accept()设置为Default模式

    accept_filter=filter:设置监听端口对请求的过滤

    bind:标识符,使用独立的bind()处理此address:port;

    ssl:标识符,设置会话连接使用SSL模式,与Nginx提供的HTTPS服务有关

    eg: listen 192.168.1.10 default_server backlog=1024 :设置192.168.1.10的请求默认由虚拟主机处理,并最多允许1024网络连接同时处于挂起状态。

13.配置虚拟主机名称
  • 语法:server_name ...

    可使用通配符、正则表达式等

    可配多个名称,用空格隔开

14.配置请求的根目录
  • 说明:Web接收到网络请求后,首先在服务器根目录中寻找资源
  • 语法:root path; eg: root /locations
15.更改location的URI
  • 说明:将Web传来的URI改为指定URI去寻找资源
  • 语法:alias path;
16.设置网站默认首页
  • 语法:index xxx eg: index index.html index.$1.html (这里的 $1为预变量locations)
17.设置错误页面
  • 语法:error_page code [=[response]] uri eg:error_page 404 /404.html

    code:需要处理的HTTP错误码

    response:可选项,将code错误码改为response错误码

    uri:错误页面的路径

18.基于IP配置Nginx访问权限
  • 说明:Nginx通过两种途径控制基本访问权限:其中一种是HTTP标准模块ngx_http_access_module支持,其通过IP来判断客户端是否拥有对Nginx的访问权限

  • 语法

    • allow指令:allow address | CIDR | all; 【设置允许访问Nginx的客户端IP】

      address:允许访问的客户IP,一条设置只能配一个IP

      CIDR:允许访问客户端的CIDR地址

      all:表示允许所有客户端访问

    • deny指令:deny address |CIDR | all 【设置禁止访问的客户端IP】

  • 配置模块:http、server、location

19.基于密码配置Nginx访问权限
  • 说明:一种基于HTTP Basic Authentication协议的认证,是一种HTTP性质的认证方法,需要识别用户名和密码,由HTTP标准模块ngx_http_auth_basic_module支持

  • 语法

    • auth_basic指令:auth_basic string |off 【用于开启或关闭】

      string:开启认证功能,并配置验证时的指示信息

      off:关闭认证功能

    • auth_basic_file指令:auth_basic_user_file file 【用于设置用户名和密码信息的文件路径】

      file:密码文件的绝对路径,支持明文或加密后的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值