Nginx配置详细解释

文章目录

  • 一、配置详细解释
    • 关闭版本
    • 修改启动的进程数
    • cpu与work进程绑定
    • nginx进程的优先级
    • work进程打开的文件个数
    • event事件
  • 二、Http设置
    • 协议配置说明
    • mime
    • 虚拟主机
    • alias
    • location
    • access模块
    • 验证模块
    • 自定义错误页面
    • 自定义日志存放位置
    • try_files检测文件是否存在
    • 长连接


一、配置详细解释

Nginx的配置文件
在这里插入图片描述

  • 配置文件由指令和指令块构成
  • 每条指令以;分号结尾,指令与值之间以空格符号分隔
  • include语句允许组合多个配置文件以提升可维护性
  • include语句允许组合多个配置文件以提升可维护性
  • pid号 /run/nginx.pid(yum安装)
  • 主配置文件 /etc/nginx/nginx.conf
  • 子配置文件 /etc/nginx/conf.d/*.conf

关闭版本

在主配置文件中http语句中加上 server_tokens off; 然后重新载入配置文件即可。
在这里插入图片描述
在这里插入图片描述
验证成功

修改启动的进程数

在这里插入图片描述
在这里插入图片描述

cpu与work进程绑定

将Nginx工作进程绑定到指定的CPU核心,默认Nginx是不进行进程绑定的,绑定并不是意味着当前nginx进程独占以一核心CPU,但是可以保证此进程不会运行在其他核心上,这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。
这种称之为cpu的亲缘性。
在这里插入图片描述
注意:要绑定一起绑定
worker_cpu_affinity 00000001 00000010 00000100 00001000;第0号—第3号CPU

nginx进程的优先级

即调整worker进程的优先级;工作进程的优先级默认为0,工作进程的优先级为-20~19
在主配置文件中加上worker_priority x;
在这里插入图片描述
验证成功

work进程打开的文件个数

worker_rlimit_nofile 65536;
上述所有worker进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制。需要与ulimit -n 或者limits.conf的值保持一致。
在这里插入图片描述

event事件

events {worker_connections  65536;  use epoll;accept_mutex on; multi_accept on; }

worker_connections 65536; #设置单个工作进程的最大并发连接数
use epoll; #使用epoll事件驱动,Nginx支持众多的事件驱动,比如:select、poll、epoll,只能设置在events模块中设置。
accept_mutex on; #on为同一时刻一个请求轮流由work进程处理,而防止被同时唤醒所有worker,避免多个睡眠进程被唤醒的设置,默认为off,新请求会唤醒所有worker进程,此过程也称为"惊群",因此nginx刚安装完以后要进行适当的优化。建议设置为on
multi_accept on; #ON时Nginx服务器的每个工作进程可以同时接受多个新的网络连接,此指令默认为off,即默认为一个工作进程只能一次接受一个新的网络连接,打开后几个同时接受多个。建议设置为on

二、Http设置

http是一个大的语句块,包含若干个小的语句块

协议配置说明

在这里插入图片描述

 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;types_hash_max_size 4096;include             /etc/nginx/mime.types;default_type        application/octet-stream;server_tokens  off;include /etc/nginx/conf.d/*.conf;

log_format 定义日志的格式,并取名为main;
access_log /var/log/nginx/access.log main;定义日志存放的位置,并采用main格式
sendfile on; 开启高性能的文件传输机制,可以直接在内核空间和应用程序空间之间传输数据,而无需将数据从内核空间复制到应用程序空间,从而提高了文件传输的效率和性能。零拷贝技术
tcp_nopush on; #在开启了sendfile的情况下,合并请求后统一发送给客户端。
tcp_nodelay off; #在开启了keepalived模式下的连接是否启用TCP_NODELAY选项,当为off时,延迟0.2s发送,默认On时,不延迟发送,立即发送用户响应报文。
keepalive_timeout 65 65; #设置会话保持时间,第二个值为响应首部:keepAlived:timeout=65,可以和第一个值不同
include mime.types; #导入支持的文件类型
default_type application/octet-stream; #除mime.types中文件类型外,设置其它文件默认类型,访问其它类型时会提示下载不匹配的类型文件
include /etc/nginx/conf.d/*.conf;#表明子配置文件所在的位置。

mime

此项为支持的 文件格式,如果不支持的格式 会自动帮你下载,如果支持 就会显示在网页上。
/etc/nginx/mime.types
在这里插入图片描述

虚拟主机

将一台主机虚拟成多台主机,有三种方式,基于端口,基于IP地址,基于域名。
1.基于端口
在这里插入图片描述
root指定了主页文件的位置
在这里插入图片描述

2.基于域名
在这里插入图片描述
在这里插入图片描述
3.基于IP地址
在这里插入图片描述
在这里插入图片描述

alias

在这里插入图片描述
在这里插入图片描述
验证成功

location

在一个server中location配置段可存在多个,用于实现从uri到文件系统的路径映射;ngnix会根据用户请求的URI来检查定义的所有location,按一定的优化级找出一个最佳匹配,而后应用其配置在没有使用正则表达式的时候,nginx会先在server中的多个location选取匹配度最高的一个uri,uri是用户请求的字符串,即域名后面的web文件路径,然后使用该location模块中的正则url和字符串,如果匹配成功就结束搜索,并使用此location处理此请求。

基本语法规则
location [ = | ~ | ~* | ^~ ] uri { … }

  1. = 用于标准uri前,需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止向下匹配并立即处理请求
  2. ^~ 用于标准uri前,表示包含正则表达式,并且匹配以指定的正则表达式开头,对URI的最左边部分做匹配检查,不区分字符大小写
  3. ~ 用于标准uri前,表示包含正则表达式,并且区分大小写
  4. ~* 用于标准uri前,表示包含正则表达式,并且不区分大写
  5. 不带符号 匹配起始于此uri的所有的uri

匹配优先级从高到低
=, ^~, ~ / ~*(谁写在前面谁优先级高), 不带符号

特别说明:
~* 用来对用户请求的uri做模糊匹配,uri中无论都是大写、都是小写或者大小写混合,此模式也都会匹配,通常使用此模式匹配用户request中的静态资源并继续做下一步操作,此方式使用较多注意: 此方式中,对于Linux文件系统上的文件仍然是区分大小写的,如果磁盘文件不存在,仍会提示404。
~* 虽然 不区分大小写 但是系统的文件系统区分大小写。

location遍历规则
在这里插入图片描述
解释:优先遍历未开启正则的三种形式,如果匹配上=字符串这种形式,意味着精确匹配,则立即停止匹配。
如果没有匹配上,则开始其他两种形式的匹配,并记住最长字符的匹配。如果匹配上^ ~的形式,则停止匹配,如果最长匹配不是^ ~,则需要继续进行正则匹配,如果没有正则匹配,则返回使用最长匹配。

access模块

访问控制模块,用于控制访问的主机地址。可以用精准的IP地址,也可以用网段。同时,注意这个模块也是一旦命中就不会往下继续匹配了,所以范围越小写的往上。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

验证模块

htpasswd 此命令来自于httpd-tools包中,没有的话自己安装下即可。
如何生成账号和用户

htpasswd -c  文件路径 姓名        	 交互式生成密码
htpasswd -bc 文件路径 姓名 密码   		直接将密码跟在后面 -c  代表新建用户名和密码对应的文件
-b  将密码跟在用户名后

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
验证成功。

自定义错误页面

我们可以改变默认的错误页面,同时也可以用指定的响应状态码进行响应。

error_page code ... [=[response]] uri;
页面错误代码  
error_page    固定写法
code          响应码
=             可以将响应码转换
uri           访问连接

在这里插入图片描述
在这里插入图片描述
验证成功

自定义日志存放位置

默认日志文件放在/var/log/nginx下面,但一台真实主机会虚拟成多台主机,故将各自虚拟主机的日志文件分开放就很有需要。
在这里插入图片描述
当然,错误日志可以规定当达到什么级别才记录。

error_log       文件路径      级别(info  debug等  可以忽略不写)

在这里插入图片描述

try_files检测文件是否存在

try_files会按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内部500错误。

在这里插入图片描述
注意如果没有托底的/about文件将会出现50X错误,所以一定要设置。
在这里插入图片描述
在这里插入图片描述
验证成功。

优化操作:如果没有托底界面,可以自定义响应码返回,然后结合重定义错误界面,将客户引导至新的界面。

server{listen 80;server_name  www.pc.com;root /data/nginx/pc;location  / {root      /data/nginx/pc/;try_files $uri  $uri.html $uri/index.html =489;}error_page 489 /40x.html;location = /40x.html {root    /data/nginx/error/;}
}

长连接

http 基于tcp协议,需要三次握手再传输数据。肯定不想一次三次握手才能下载一个资源,要一次三次握手下载多个资源。
这个时候就需要用到长连接。
keepalive_timeout timeout [header_timeout];
#设定保持连接超时时长,0表示禁止长连接,默认为75s,通常配置在http字段作为站点全局配置。
keepalive_requests number;
#在一次长连接上所允许请求的资源的最大数量,默认为100次,建议适当调大。

keepalive_requests 3;
#最大下载三个资源就会断开
keepalive_timeout 60 65;   #只能有一个空格 
#开启长连接后,返回客户端的会话保持时间为60s,单次长连接累计请求达到指定次数请求或65秒就会被断开,后面的60为发送给客户端应答报文头部中显示的超时时间设置为60s:如不设置客户端将不显示超时时间。
Keep-Alive:timeout=60  #浏览器收到的服务器返回的报文
#如果设置为0表示关闭会话保持功能,将如下显示:
Connection:close  #浏览器收到的服务器返回的报文

在这里插入图片描述
对某种浏览器禁用长连接

keepalive_disable none | browser ...;  
#对哪种浏览器禁用长连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/848376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

附件下载跨域问题-解决

1.若依附件下载跨域 源码: package com.ruoyi.common.utils.file;import java.io.*; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; i…

真实场景 这周的任意一天,获取上周一到周日的时间范围-作者:【小可耐教你学影刀RPA】

用户场景 我想在这周的任意一天,获取上周一到周日的时间范围,应该怎么做 解决办法1 用指令解决 最简单 解决办法2 自己写逻辑 不过要用到 获取当前日期指令 当前是礼拜几

Hugging Face系列2:详细剖析Hugging Face网站资源——实战六类开源库

Hugging Face系列2:详细剖析Hugging Face网站资源——实战六类开源库 前言本篇摘要2. Hugging Face开源库2.1 transformers2.1.1 简介2.1.2 实战1. 文本分类2. 图像识别3. 在Pytorch和TensorFlow中使用pipeline 2.2 diffusers2.2.1 简介2.2.2 实战1. 管线2. 模型和调…

俄罗斯ozon平台计算器,ozon定价计算器

在数字化飞速发展的今天,电商平台已成为商家们展示产品、吸引顾客的重要窗口。而在俄罗斯这一广阔的市场中,Ozon平台以其独特的优势,成为了众多电商卖家的首选。然而,想要在Ozon平台上脱颖而出,除了优质的产品和服务外…

初识C++ · 反向迭代器简介

目录 前言 反向迭代器的实现 前言 继模拟实现了list和vector之后,我们对迭代器的印象也是加深了许多,但是我们实现的都是正向迭代器,还没有实现反向迭代器,那么为什么迟迟不实现呢?因为难吗?实际上还好。…

《精品生活》万方普刊投稿发表简介

《精品生活》杂志是由国家新闻出版总署批准,南方出版传媒股份有限公司主管,广东大沿海出版工贸有限公司主办,广东精品生活杂志社出版的综合性文化期刊。主要栏目:教学研究、艺术教育、文化广角、民族文化、理论前沿、综合论坛。 刊…

【2024】Kafka Streams纤细介绍与具体使用(1)

目录 介绍关键特性应用场景核心概念部署方式kafka streams的处理模式 具体使用1、准备工作2、添加依赖3、代码实现3、测试 介绍 Kafka Streams是构建在Apache Kafka之上的客户端库,用于构建高效、实时的流处理应用。它允许你以高吞吐量和低延迟的方式处理记录流&am…

Prompt 指南之零样本与少样本提示,超详细解析!

前言 我将在本文中为你带来另外 2 种提示技术,它们分别是: 零样本提示(Zero-shot Prompting)少样本提示(Few-shot Prompting) shot 即代表示例 这两种技术利用 LLM 的强大预训练知识,通过最小…

云端狂飙:Django项目部署与性能优化的极速之旅

Hello,我是阿佑,这次阿佑将手把手带你亲自踏上Django项目从单机到云端的全过程,以及如何通过Docker实现项目的无缝迁移和扩展。不仅详细介绍了Docker的基本概念和操作,还深入探讨Docker Compose、Swarm和Kubernetes等高级工具的使…

1Panel 搭建 halo博客

线上服务器一直闲置,刷到视频 1Panel 能更好管理服务器,还能快速搭建博客,便上手试试,的确很方便,顺手记录一下。 零、准备工作 一台服务器(按需购买,此处准备的阿里云服务器一台,也…

postman教程-14-生成随机数

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了Postman关联接口的调用方法,本小节我们讲解一下Postman生成随机数的方法。 在接口测试中,经常需要向接口发送不同的输入数据,以确保接口的健壮性和可靠性。…

中国自动气象站:现代气象观测的中流砥柱

引言 气象观测是人类认识和预报天气的重要手段。在现代科技的推动下,自动气象站成为气象观测的重要工具,为天气预报、防灾减灾和气候研究提供了宝贵的数据支持。本文将介绍中国自动气象站的发展历程、技术特点及其在气象观测中的重要作用。 中国自动气象…

关于远程销售的电子课程开发

一家国际网络安全公司委托我们开发用于培训销售代表远程和电话销售的互动电子内容。我们在 Articulate Storyline 中创建了情节脚本和二维动画,以解释关键概念和销售技巧。互动元素使学习者可以按照自己的节奏进行学习,而我们的动画插图则使材料生动起来…

【成都信息工程大学】只考程序设计!成都信息工程大学计算机考研考情分析!

成都信息工程大学(Chengdu University of Information Technology),简称“成信大”,由中国气象局和四川省人民政府共建,入选中国首批“卓越工程师教育培养计划”、“2011计划”、“中西部高校基础能力建设工程”、四川…

运维系列.Linux下的用户管理

运维系列 Linux下的用户管理 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/ar…

LabVIEW FPGA开发NI sbRIO-9607高精度数字滤波器

使用NI sbRIO-9607硬件平台,通过LabVIEW FPGA模块实现一个高精度数字滤波器。该应用不需要额外的实时操作系统 (RT),所有控制与数据处理均在sbRIO-9607的FPGA上完成,充分利用其并行处理能力,实现低延迟、高性能的数据滤波。这种滤…

最新 Navicat Data Modeler 4 | 产品介绍

在过去的几周里,我们已经介绍了 Navicat 版本 17,现在我们来把注意力转移到另外两个值得关注的产品上,即 Navicat Data Modeler 和 Navicat BI(之前称为 Navicat Chart Creator)。今天的博客将介绍 Navicat Data Model…

AI Agent:人类工作范式的颠覆者还是人机协作新范式?

编者按: 当前大热的大语言模型和检索增强生成模型,虽然在语言理解和内容生成方面取得了突破性的进展,但仍然存在诸多限制。它们缺乏根据目标导引行为、持续学习和与环境交互的能力,难以应对复杂多变的现实场景需求。 今天为大家带…

代理IP科普:IP黑名单与IP白名单的机制与作用

在IP代理使用中,我们经常听到黑名单与白名单两个名词,它们不仅提供了强大的防御机制,还可以灵活应对不同的安全威胁。本文将详细探讨IP黑名单和白名单在网络安全中的双重屏障作用。 一、IP黑名单和白名单定义 IP黑名单与IP白名单是网络安全中…

事务管理AOP

通过事务操作 删除部门的时候,同时删除员工,那么如果其中有异常,那么就进行事务回滚 使用注解Trance Transactional-propagation(传播行为)