Nginx 配件文件详解(一)|学习笔记

简介: 快速学习 Nginx 配件文件详解(一)

开发者学堂课程【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秒。

image.png

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

}

image.png

这是默认配置模式。

在 Nginx 官方上有很多模块配置的相关文件,不懂得可直接在里面找。

worker_ cpu_ affinity :设置工作进程的 cpu 的亲和性,这个都需要设置。如果开了4个核心的工作进程,那么 CPU 一般和这个数量相等。

如果相等的,我们就把这个4个核心的这个4个功能异常分散到各个 CPU 核心上。0001是第1个 CPU 伙伴,0010是第2个 CPU,0100第三个 CPU,1000第四个 CPU。这样绑定了之后,这个工作进程他就不会来回跳了。

Events:设置和事件驱动的相关设置

image.png

配置定义错误信息

image.png

相关文章
|
1月前
|
Kubernetes 应用服务中间件 nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
|
24天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
119 0
|
3月前
|
JavaScript 应用服务中间件 PHP
nginx server 禁止特定目录下的某类文件访问
【8月更文挑战第26天】这段Nginx配置代码旨在保护`/uploads/`目录下的文件,禁止执行任何`.php`, `.html`, `.htm`, 或 `.js`等潜在有害文件,即便被访问也无法运行。取而代之的是重定向到首页。为了实现这一设置,用户需要定位到对应子域名的`.conf`配置文件中进行相应修改。若网站支持多个访问域名,则需确保在正确的`.conf`文件中实施此配置。
84 1
|
3月前
|
存储 监控 应用服务中间件
查看nginx日志文件
器性能和提高网站可用性。掌握日志文件的路径、查看方法和基本分析技能对于任何服务器管理员来说都是必备技能。
126 1
|
3月前
|
应用服务中间件 Linux nginx
Nginx log 日志文件较大,按日期生成 实现日志的切割
Nginx log 日志文件较大,按日期生成 实现日志的切割
630 0
|
4月前
|
存储 网络协议 应用服务中间件
nginx文件夹内文件解释<六>
nginx文件夹内文件解释<六>
38 3
|
4月前
|
JSON 前端开发 应用服务中间件
nginx文件夹内文件解释<五>
nginx文件夹内文件解释<五>
34 3
|
4月前
|
应用服务中间件 nginx Ruby
nginx文件夹内文件解释<七>
nginx文件夹内文件解释<七>
39 2
|
4月前
|
缓存 应用服务中间件 开发工具
Ngnix配置文件nginx.conf的文件结构
Ngnix配置文件nginx.conf的文件结构
|
4月前
|
应用服务中间件 nginx
nginx文件夹内文件解释<八>
nginx文件夹内文件解释<八>
179 0