nginx读书笔记

1 nginx.conf配置解释
1)全局块
通常包括运行配置的用户组,允许生成的worker process数,Nginx进程PID存放路径,日志的存放路径和类型以及配置文件引入等。
2)events块
events块涉及到的指令主要影响nginx服务器与用户的网络连接。常用到的设置包括是否开启对多workerprocess下的网络进行序列化,是否允许同时接受多个网络连接,选取哪种事件驱动模型处理连接请求,每个worker process可以同时支持的最大连接数、
3)http块
代理、缓存和日志定义等绝大多数的功能和第三方模块的配置都可以放在这个模块中,可以在http全局模块中配置的指令包括文件引入,MIME-Type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单链接请求数上线等
4)sever块
每个http块都可以包含多个server块,每个server块就相当于一台虚拟机。server块可以包含自己的全局块,同时也可以包含多个location块。在server块中,最常见的两个配置项时本虚拟机主机的监听配置和本虚拟机的名称和ip配置。
5)location块
基于Nginx服务器接收到的请求字符串,对除虚拟机主机名称之外的字符串进行匹配,对特定的请求进行处理。地址定向,数据缓存和应答控制等功能,都是在这部分实现。
2 配置运行nginx服务器用户(组)
用于配置运行nginx服务器用户(组)的指令时user,其语法格式为:
user user [group]
如果希望所有用户都可以启动nginx进程,则可以将行命令注释掉
user user [group]或者使用user nobody nobody

3 配置允许生成的worker process数
worker_processs number | auto;
number,指定Nginx进程最多可以产生的worker process数
auto,设置此值,Nginx进程将自动检测

4 配置Nginx进程PID存放路径
nginx进程作为系统的守护进程运行,当前运行程序的主进程号需要被保存。Nginx支持对它的存放路径,指令为pid,语法格式为:
pid file;
pid sbin/web-nginx(注意:如果只设置了路径没有设置文件名,则会报错)

5 错误日志存放路径
error_log file | stderr [debug | info | notice | warn | error | crit| alert | emerg];
例子:error_log logs/error.log error

6 配置文件的引入
include file;

7 设置网络连接的序列化
accept_mutex on | off;(对多个Nginx进程接收连接进行序列化,防止多个进程对连接的争抢)

8 设置是否允许同时接收多个网络连接
muti_accept on | off;(off状态下每个worker process一次只能接收一个新到达的网络连接。此指令只能在events块中配置)

9 事件驱动模型的选择
user method;
method可选择的内容有:select、poll、kqueue、epoll、rtsig、/dev/poll以及eventport

10 配置最大连接数
worker_connections number;(设置允许每一个worker process同时开启的最大连接数)

11 定义MIME-Type(网络资源的媒体类型)

12 自定义服务日志
语法格式:access_log path[format[buffer=size]]
默认配置为:access_log logs/access.log combined;(combined为log_format指令默认定义的日志格式字符串的名称)
取消日志功能:access_log off;
log_format用法:
log_format name string…;(name,格式字符串的名字,string,服务日志的格式字符串)
例子:
log_format exampleLog ‘ r e m o t e a d d r − [ remote_addr - [ remoteaddr[time_local] $request $status $body_bytes_sent $http_refer $http_user_agent’(此指令只能在http块中配置)

13 配置允许sendfile方式传输文件
sendfile on | off;(用于开启或关闭使用sendfile()传输文件,默认值为off,可以在http,server,location中配置)
sendfile_max_chunk size;(0为无限制,大于0时,则每次调用sendfile()传输的最大数据量不能超过该值.示例:sendfile_max_chunk 128k)

14 配置连接超时时间
keeplive_timeout timeout[header_timeout];(timeout,服务器对连接的保持时间。默认为75s)
header_timeout,可选项,在应答报文头部的Keep_Alive域设置超时时间。
示例:keepalive_timeout 120s 100s;(服务器端保持连接的时间为120s,发给用户端的应答报文头部中Keep-Alive域的超时时间设置为100s)(该指令可在loacation,server块中设置)

15 单链接请求数上限
keeplive_requests number;(用于限制用户通过某一连接想Nginx服务器发送请求的次数)

16 配置网络监听
listen address[:port] [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [defered] [accept_filter=filter] [bind] [ssl];
第二种监听配置
listen port[default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [defered] [bind] [ipv6only=on|off] [ssl];
第三种配置UNIX Domain Socket
listen unix:path [default_server] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ssl];
address:ip地址,如果时IPV6地址,需要使用[]括起来
port:端口号
path,socket文件路径,如/var/run/nginx.sock
default_server标识符,将此虚拟机设置为默认主机
setfib=number,设置监听函数listen()最多允许多少网络连接同时处于挂起状态,在FeeBSD中默认为-1,其他平台为511
rcvbuf=size.设置监听socket接收缓存区大小
sndbuf=size,设置监听socket发送缓存区大小
deferred,将accept()设置为Deferred模式。
accept_filter=filter,设置监听端口对请求的过滤
bind,标识符,使用独立的bind()处理此address:port
ssl,标识符,设置会话连接使用ssl模式进行
listen默认的设置为: listen *:80 | *:8000;

17 基于名称的虚拟主机配置
server_name name …;(name可以是多个,之间使用空格隔开,每个名字就是一个域名)
示例:server_name myserver.com www.myserver.com
在name中可以使用通配符,但只能用在三段字符串组成的名称的首段或尾段,或者由两段字符串组成的名称的尾段,如:server_name .myserver.com www.myserver.
在name中还可以使用正则表达式,并使用波浪号“~”作为正则表达式的开始标记,
如:server_name ~^www\d+.myserver.com$;

server_name ~^www.(.+).com$;
解释:当请求www.myserver.com到达Nginx服务器端时,其将会被上面的正则表达式匹配成功,其中的“myserver”将会被捕获,并记录到$1中。在本server块的下文配置中,当需要“myserver”时,就可以通过$1代替“myserver”了

一个名称被多个server_name匹配成功时,有以下规定:
1)对于匹配方式不同的,按照以下优先级选择虚拟主机,排在前面的优先处理
准确匹配server_name
通配符在开始时匹配server_name成功
通配符在结尾时匹配server_name成功
正则表达式匹配server_name成功
2)在以上四种匹配方式中,如果server_name被处于同一优先级的匹配方式多次匹配成虫,则首次匹配成功的虚拟主机处理请求

18 基于ip的虚拟主机配置

19 配置location块
location [ = | ~ | ~* | ^~ ] uri { … };(uri可以包含正则表达式,不包含正则表达式的uri暂称为:标准uri)
“=”,用于标砖uri前,要求请求字符串与uri严格匹配。如果匹配成功,就停止继续向下搜索并立即处理此请求
“~”,用于表示uri包含正则表达式,并且区分大小
“~”,用于表示uri包含正则表达式,并且不区分大小
注意:如果表达式包含正则表达式,则必须用“”或者“
”标记
“^~”,用于标准uri前,要求Nginx服务器找到表示uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location中的正则uri和请求字符串做匹配

20 配置请求的根目录
Web服务器收到网络请求之后,首先要在服务器端寻找请求资源。在Nginx服务器中,指令root就是用来配置这个根目录的。
示例:
location /data/
{
root /locationtest1;
}
当location块接收到“/data/index.html”的请求时,将在/locationtest1/data/目录下寻找index.html响应请求

21 更改location的URI
在location块中,还可以使用alias指令改变location接收到的URI的请求年路径,语法为:alias path;
location ~ ^/data/(.+.(htm|html))$
{
alias /locationtest1/other/$1;
}
当location收到请求”/data/index.html“请求时,匹配成功,之后根据alias指令的配置,Nginx服务器降到/locationtest1/other/目录下寻找index.html响应请求

22 设置网页的默认首页
index指令作用:一用户发出请求时可以不写首页名称,二可以对一个请求,根据请求内容的不同设置不同的首页,其语法结构为:
index file …;
示例:
location ~ ^/data/(.+)/web/ $
{
index index.$1.html index.my1.html index.html
}
当location块接收到”/data/locationtest/web/“时,匹配成功,$1将会被置为”locationtest“,然后在/data/locationtest/web/路径下依次寻找index.loactiontest.html、index.my1.html和index.html,首先找到哪个就返回哪个

23 设置网页的错误页面
常见的http错误:
在这里插入图片描述
在这里插入图片描述

error_page code… [=[response]] uri
code 要处理的HTTP错误代码
response 可选项,将code指定的错误代码转化为新的错误代码response
uri 错误页面的路径
error_page 404 /404.html(Nginx安装路径/html/404.html)
error_page 403 http:somewebsite.com/forbidden.html
eorror_page 410=301 /empty.gif
使用自定义的404错误页面
location /404.html
{
root /myserver/errorpages/
}

24 基于IP配置nginx的访问权限
allow address | CIDR | all;
address 允许访问Nginx的客户端ip,不支持同时设置多个
CIDR 允许访问的客户端CRDI地址,例如202.80.18.23/25,前面32位ip地址,后面”/25“代表该IP地址中前25位是网络部分,其余位代表主机部分
all,代表允许所有客户端访问
相反功能的命令 deny address | CIDR | all;

25基于密码配置nginx的访问权限
auth_basic string | off
string: 开启认证功能,并配置验证时的只是信息
off: 关闭验证功能

auth_basic_user_file file;(file为密码文件的绝对路径)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值