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

相关文章
|
6月前
|
Kubernetes Cloud Native 应用服务中间件
【云原生】使用k8s创建nginx服务—通过yaml文件svc类型暴露
【云原生】使用k8s创建nginx服务—通过yaml文件svc类型暴露
130 0
|
8月前
|
应用服务中间件 Linux API
若依系统在linux上部署,前台dist文件使用nginx服务,接口无法正常使用的问题?
若依系统在linux上部署,前台dist文件使用nginx服务,接口无法正常使用的问题?
224 0
|
2月前
|
tengine Rust 负载均衡
反向代理学习笔记(一) Nginx与反向代理绪论
反向代理学习笔记(一) Nginx与反向代理绪论
|
8月前
|
应用服务中间件 nginx
Nginx单独配置conf文件
Nginx单独配置conf文件
73 1
|
8月前
|
前端开发 应用服务中间件 nginx
前端学习笔记202305学习笔记第二十三天-nginx项目部署500情况
前端学习笔记202305学习笔记第二十三天-nginx项目部署500情况
45 0
|
4月前
|
JavaScript 应用服务中间件 nginx
docker安装的nginx放在html文件下的vue项目404解决
docker安装的nginx放在html文件下的vue项目404解决
|
9月前
|
算法 应用服务中间件 nginx
nginx开通gzip压缩传输文件
nginx开通gzip压缩传输文件
|
5月前
|
应用服务中间件 Linux nginx
linux nginx域名证书到期,拿着客户给的新证书文件在nginx中对证书进行替换
业务场景: 📕1.找到原证书位置,可在nginx 配置文件中查找到 🖥️2.找到位置后将原文件名字 加上.old (需要更换两个文件 一个.pem 一个.key) 🔖3.将新证书文件放在原目录,并重命名为原证书文件名称 📌4.cd到sbin目录 reload nginx 📇5.查询是否替换成功 🧣6、最后的话 业务场景: 域名证书到期,拿着客户给的新证书文件在nginx中对证书进行替换
161 0
|
7月前
|
缓存 负载均衡 应用服务中间件
|
7月前
|
负载均衡 前端开发 应用服务中间件
Nginx学习笔记
Nginx学习笔记