开发者学堂课程【Nginx 企业级 Web 服务实战:Nginx 配件文件详解】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/649/detail/10755
Nginx 配件文件详解(一)
内容简介
一、Nginx 的安装
二、默认配置文件:
三、Nginx 核心配置详解:
一、Nginx 的安装
Nginx 的安装版本分为 Mainline version (主要开发版本,其实就是还处于开发版).
Stable version (当前最新稳定版)和 Legacy versions (旧的稳定版),Nginx 安装可以使用 yum 或源码安装, 但是推荐使用源码,
一是 yum 的版本比较旧,
二是编译安装可以更方便自定义相关路径,
三是使用源码编译可以自定义相关功能,更方便业务的上的使用,源码安装需要提前准备标准的编译器,
GCC 的全称是(GNU Compiler collection) ,其有 GNU 开发,并以 GPL 即 LGPL 许可,是自由的类 UNIX 即苹果电脑 Mac OS X 操作系统的标准编译器,因为 GCC 原本只能处理 C 语言,所以原名为 GNU C 语言编译器,后来得到快速发展,可以处理C++,Fortran, pascal, objective-C, java 以及 Ada 等其他语言,
此外还需要 Automake 工具,以完成自动创建 Makefile 的工作,Nginx 的一 些模块需要依赖第三方库,比如 pcre (支持 rewrite) ,zlib (支持 gzip 模块) 和 openssI (支持 ssI 模块) 等。
二、默认配置文件:
[root@s2 ~]# grepa-v "#”/apps/nginx/conf/nginx.confI grep -V “$"
#全局配置端,对全局生效,主要设置 nginx 的启动用户/组,启动的工作进程数量,工作模式,Nginx 的 PID路径,日志路径等。
user nginx nginx;
worker_ processes 1;
#启动工作进程数数量
events { #events 设置快, 主要影响 nginx 服务器与用户的网络连接,比如是否允许同时接受多个网络连接,使用哪种事件驱动模型处理请求,每个工作进程可以同时支持的最大连接数,是否开启对多工作进程下的网络连接进行序列化等。
worker. connect ions1024; #设置 单个 nginx 工作进程可以接受的最大并发作为 web 服务器的时候最大并发数为
worker. connections ”worker. processes
, 作为反向代理的时候为 (worker connections *worker_ processes)/2
http { http 块是 Nginx 服务器配置中的重要部分,缓存、代理和日志格式定义等绝大多数功能和第三方模块都可以在这设置,http 块可以包含多个 server 块,
而一个 server 块中又可以包含多个 location 块,server 块可以配置文件引入、MIME -Type 定义、日志自定义、是否启用 sendfile、连接超时时间和单个链接的请求上限等。
include
mime。types;
default type applicat ion/octet -stream;
Sendfile on; #作为 web 服务器的时候打开 sendfile 加快静态文件传输,指定是否使用 sendfile 系统调用来传输文件,sendfile 系统调用在两个文件描述符之间直接传递数据(完全在内核中操作),从而避免了数据在内核缓冲区和用户缓冲区之间的拷贝,操作效事很高,被称之为零拷贝,硬盘》kernel buffer (快速拷贝到 kernelsocket buffer) >>协议栈。
keepalive_ timeout 65; :设置用户超链接时长,长连接超时时间, 单位是秒,65秒。
server { #设置一个虚拟机主机,可以包含自己的全局快,同时也可以包含多个location 模块。
比如本虚拟机监听的端口、本虚拟机的名称和 IP 配置,多个 server 可以使用同一个端口,比如都使用80端口提供 web 服务、Listen 80;配置 server 监听的端口。
server_ name localhost; 本 server 的名称, 当访问此名称的时候 nginx 会调用当前serevr 内部的配置进程匹配。
location / { #location 其实是 server 的一 一个指令,为 nginx 服务器提供比较多而且灵活的指令,都是在 location 中提现的,主要是基于 nginx 接受到的请求字符串,对用户请求的 UIL 进行匹配,并对特定的指令进行处理,包括地址重定向、数据缓存和应答控制等功能都是在这部分实现,另外很多第三方模块的配置也是在location 模块中配置。
root
html;相当于默认页面的目录名称,默认是相对路径,可以使用绝对路径配置。
index index .html index .htm
; #默认的页面文件名称
error_ page
500 502 503 504 /50x.html
; #错误页面的文件名称
location = /50x.html { #locat ion 处理对应的不同错误码的页面定义到/50x.html,这个跟对应其
server 中定义的目录下。
root
html; 定义默认页面所在的目录
}
}
#和邮件相关的配置
#mail {
#
#
}
ma1l协议相关配置段
#tcp 代理配置,1. 9版本以上支持
#stream {
#
#
}
stream 服务器相关配置段
#导入其他路径的配置文件
#include /apps/nginx/conf. d/*。conf
}
这是默认配置模式。
在 Nginx 官方上有很多模块配置的相关文件,不懂得可直接在里面找。
worker_ cpu_ affinity :设置工作进程的 cpu 的亲和性,这个都需要设置。如果开了4个核心的工作进程,那么 CPU 一般和这个数量相等。
如果相等的,我们就把这个4个核心的这个4个功能异常分散到各个 CPU 核心上。0001是第1个 CPU 伙伴,0010是第2个 CPU,0100第三个 CPU,1000第四个 CPU。这样绑定了之后,这个工作进程他就不会来回跳了。
Events:设置和事件驱动的相关设置
配置定义错误信息