当前位置: 首页 > news >正文

一、nginx配置

一、nginx配置

  1. 配置简介

1)nginx相关目录

工作目录:/etc/nginx
执行文件:/usr/sbin/nginx
日志目录:/var/log/nginx
启动文件:/etc/init.d/nginx
web目录:/var/www/html/,首页文件是index.nginx-debian.html
2)nginx配置文件

默认文件:
/etc/nginx/nginx.conf
其他目录:
/etc/nginx/{sites-enabled/conf.d}
文件结构:
全局配置段
http配置段
server配置段 # 项目或者应用
location配置段 # url配置

  1. nginx访问过程原理

  2. nginx配置详解
    3.1 全局配置段
    主要是全局性的和服务级别的属性配置,常见的主要有以下几种设置:

user # 设置使用用户(worker)
worker_processes # 进行增大并发连接数的处理 跟cpu保持一致 八核设置八个
pid # nginx服务启动时候pid
events # 定义事件相关的属性
worker_connections # 一个进程允许处理的最大连接数
use # 定义使用的内核模型
3.2 http配置段
主要配置server通用的一些配置:

include mime.types; # 文件扩展名与文件类型映射表
default_type application/octet-stream; # 默认文件类型
sendfile on; # 开启高效文件传输模式。
autoindex on; # 开启目录列表访问,合适下载服务器,默认关闭。
tcp_nopush on; # 防止网络阻塞
tcp_nodelay on; # 防止网络阻塞
keepalive_timeout 120; # 长连接超时时间,单位是秒
gzip on; # 开启gzip压缩输出
3.3 server配置段
常见样式:

server {
listen :;
server_name <主机域名>;

}

注:server配置段最重要的属性是listen和server_name,它们都是用于匹配并处理请求的。

1)listen属性

作用:定义server监听的ip和port,当ip和port匹配时候才进行下一步匹配。

ip:port 地址精确表示样式 listen 10.10.10.10:99 listen 10.10.10.10:99
ip 自动监听 ip:80地址 listen 10.10.10.10 listen 10.10.10.10:80
port 自动监听 全地址:port listen 99或 [::]:99 listen 0.0.0.0:99
default_server 自动使用默认的地址 listen default_server listen localhost:80
使用原则:

首先将所有样式补全成ip:port,然后匹配,如果匹配server多,那么接着使用server_name匹配。

2)server_name属性

作用:定义server监听的域名,当域名匹配时候才进行下一步操作。

形式 www.example.com .example.com www.example. _
使用原则:

优先使用完整样式,然后使用前缀正则样式,最后使用后缀正则样式,如果正则样式相同的时候,匹配最长,否则就走非法规则。 非法域名/IP,表示请求到该主机上一个不存在的IP或者域名。

3)root属性

作用:定义客户端请求的html文件所在目录路径。
表现形式:root /var/www/html;

4)index属性

作用:定义客户端请求时默认返回的文件。
表现形式:index index.html index.htm index.nginx-debian.html;

3.4 location配置段
location主要是根据server匹配到的请求路径去处理和响应。

前提: 根据请求完整url,获取uri(即:除了域名(IP)、Port和路径参数之外的部分),用于location匹配。

语法:

location optional_modifier location_match {
# 执行操作…
}
其中:optional_modifier是匹配条件,location_match是匹配的样式,{}是要执行的操作。

1)匹配规则

= /路径 精确匹配 前缀 1 location = /image {}
^~ 优先匹配 前缀 2 location ^~ /page {}
~ 普通正则-大小写敏感 正则符号 3 location ~ .(jpe?g)$ {}
~* 普通正则-大小写不敏感 正则符号 3 location ~* .(jpe?g)$ {}
空 / 通用匹配 前缀 4 location / {}
空 <路径> 前缀匹配 前缀 * location /index {}
2)匹配优先级

优先级:精确匹配>location 完整路径>优先匹配>正则匹配>location 部分路径>通用匹配

3)匹配示例

location = / { location ~ .(gif|jpg|png|js|css)$ {
#精确规则A #正则规则D
} }
location = /login { location ~* .png$ {
#精确规则B #正则规则E
} }
location ^~ /static/ { location / {
#优先规则C #通用规则F
} }
访问效果如下:

访问 http://a.com/ 将匹配规则A
访问 http://a.com/login 将匹配规则B
访问 http://a.com/static/a.html 将匹配规则C
访问 http://a.com/b.png 规则D和E均适合,按顺序优先使用规则D
访问 http://a.com/static/c.png 则优先匹配到规则C
访问 http://a.com/a.PNG 则匹配规则E,因为规则E不区分大小写
访问 http://a.com/category/id/1111 则最终匹配到规则F
3.5 location核心动作
Nginx的配置语法灵活,可控制度非常高。在0.7以后的版本中加入了一个try_files指令,配合命名location,可以部分替代原本常用的rewrite配置方式,提高解析效率。

1)指令语法

try_files file … uri
try_files file … =code
作用:响应时按顺序查找file,找到则返回file内容,否则的话进行内部重定向(uri)或返回状态码(code)。

2)常见示例

如果能找到指定的uri那么就返回相应的内容,否则的话返回错误状态码404

location / {
try_files $uri $uri/ =404;
}

如果能找到指定的文件1/2.html那么就返回相应的内容,否则的话返回6.html文件内容

location / {
try_files 1.html 2.html /6.html;
}

如果能找到指定的uri那么就返回相应的内容,否则的话就内部重定向到后端名称为@backup的location

location / {
try_files $uri @backup;
}
location @backup {
# …do something
}
注意:如果最后一个地址是一个uri的话,那么这个uri必须是存在的,否则的话就出事了。

3.6 location常见操作
在location内部常用的功能属性非常多,常见的基本属性、临时跳转、目录列表等。

1)基本属性

location / {
# 指定响应请求的文件所在路径
root /var/www/html;
# 指定响应请求的默认文件名称
index index.php index.html index.htm;
# 指定响应请求的文件浏览器缓存过期时间,一般用于静态文件
expires 7d;
# 如果root指定的路径下有查找的文件,就返回,否则报404
try_files $uri $uri/ =404;
}
2)临时跳转

location = /test/ {
return 302 http://www.itcast.cn/;
}
3)目录列表

location /upload {
# 指定查看文件列表路径(绝对路径)
alias /var/www/upload/;
# 开启目录自动索引
autoindex on;
# 默认on,显示文件确切大小(bytes)。off表示显示文件的大概大小(kB/MB/…)
autoindex_exact_size off;
# 默认off,显示的文件时间为GMT时间。on表示显示文件的服务器时间
autoindex_localtime on;
}
注:alias路径结尾必须加/。

3.7 其他说明
1)root VS alias

root 和 alias 所起的作用都是指定响应请求文件所在的路径,只是它们有区别。

root 表示 location 匹配内容的相对路径
alias 表示 一个绝对路径。

一般情况下,在location /中配置root,在location /other中配置alias。

效果一: 效果二:
location /txt/ { location /txt/ {
alias /var/www/txt/; root /var/www/txt/;
} }
效果一:访问http://localhost/txt/1.txt,nginx找/var/www/txt/1.txt文件
效果二:访问http://localhost/txt/1.txt,nginx找/var/www/txt/txt/1.txt文件

2)关于URL尾部的/有如下注意事项

  • location中的location_match字符有无"/"不受影响,/user/等同/user。

  • 对于访问网站域名(http://www.smartli.cn/),尾部有无"/“不受影响,因为浏览器会自动补全”/"。

  • 对于访问网站域名后面的路径(http://www.smartli.cn/other/),尾部的"/“很重要。
    访问URL尾部的”/“表示目录,没有”/"表示文件,而且文件找不到的话,会发生重定向。

  • /other/:表示服务器会自动去该目录下找对应的默认文件。

  • /other:表示服务器会先去找other文件,找不到的话会将other当成目录,重定向到/other/,去该
    目录下找默认文件。
    总结:

配置文件结构:全局配置段、http配置段、server配置段、location配置段
server配置段
listen:server监听的ip和port
server_name:server的域名
location配置段
匹配优先级:精确匹配>location 完整地址>优先匹配>正则匹配>location 部分地址>通用匹配
root和alias
root:相对目录
alias:绝对目录

【淘宝】https://m.tb.cn/h.566klSo?tk=M6kbWYQpGrJ CZ0001 「pycharm专业版mian费激活,永久使用。」
点击链接直接打开 或者 淘宝搜索直接打开

相关文章:

一、nginx配置

一、nginx配置 配置简介 1&#xff09;nginx相关目录 工作目录&#xff1a;/etc/nginx 执行文件&#xff1a;/usr/sbin/nginx 日志目录&#xff1a;/var/log/nginx 启动文件&#xff1a;/etc/init.d/nginx web目录&#xff1a;/var/www/html/&#xff0c;首页文件是index.ng…...

win32汇编-LEA指令是将一个内存地址加载到一个寄存器中

LEA (Load Effective Address) 指令是用来将一个内存地址加载到一个寄存器中的指令。 其语法为&#xff1a; lea destination, source 其中&#xff0c;destination 是目标寄存器&#xff0c;source 是一个内存地址&#xff08;即一个存储器操作数&#xff09;。 举个例子…...

leetcode做题笔记189. 轮转数组

给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4…...

数据库第七章作业

本篇用于日常记录和分享 第7章作业.xls 题量: 25 满分: 100 一. 单选题&#xff08;共25题&#xff09; 1. (单选题)二级封锁协议不能保证消除&#xff08; &#xff09;这一不一致现象。 A. 读取脏数据B. 死锁C. 不可重复读D. 丢失修改 我的答案: C :不可重复读; 2. (单…...

使用服务器训练模型的注意事项

一、图像展示 1.1、用VS Code远程连接服务器时&#xff0c;当我们想用matplotlib库来进行图像展示的时候&#xff0c;需要设置DISPLAY变量。 # 用终端工具&#xff08;XShell&#xff09;SSH远程服务器&#xff0c;在终端上输入下列语句 # 如果使用了anaconda的虚拟环境&…...

Linux性能优化--性能追踪3:系统级迟缓(prelink)

12.0 概述 本章包含的例子说明了如何用Linux性能工具寻找并修复影响整个系统而不是某个应用程序的性能问题。阅读本章后&#xff0c;你将能够&#xff1a; 追踪是哪一个进程导致了系统速度的降低。用strace调查一个不受CPU限制的进程的性能表现。用strace调查一个应用程序是如…...

SpringBoot2.x简单集成Flowable

环境和版本 window10 java1.8 mysql8 flowable6 springboot 2.7.6 配置 使用IDEA创建一个SpringBoot项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.…...

微信小程序一键获取位置

需求 有个表单需要一键获取对应位置 并显示出来效果如下&#xff1a; 点击一键获取获取对应位置 显示在 picker 默认选中 前端 代码如下: <view class"box_7 {{ showChange1? change-style: }}"><view class"box_11"><view class"…...

Linux性能优化--使用性能工具发现问题

9.0 概述 本章主要介绍综合运用之前提出的性能工具来缩小性能问题产生原因的范围。阅读本章后&#xff0c;你将能够&#xff1a; 启动行为异常的系统&#xff0c;使用Linux性能工具追踪行为异常的内核函数或应用程序。启动行为异常的应用程序&#xff0c;使用Linux性能工具追…...

【Proteus仿真】【STM32单片机】路灯控制系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用LCD1602显示模块、人体红外传感器、光线检测模块、路灯继电器控制等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示时间、工作模…...

Flutter笔记:发布一个Flutter头像模块 easy_avatar

Flutter笔记 发布一个头像Flutter模块 easy_avatar 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/1339…...

标准化助推开源发展丨九州未来参编开源领域4项团体标准正式发布

在数字中国及数字经济时代的大背景下&#xff0c;开源逐步成为各行业数字化发展的关键模式。在开源产业迅速发展的同时&#xff0c;如何评估、规范开源治理成为行业极度关注的问题。 近日&#xff0c;中电标2023年第27号团体标准公告正式发布&#xff0c;九州未来作为起草单位…...

ChatGPT对于留学生论文写作有哪些帮助?

2022年11月&#xff0c;OpenAI公司的智能聊天产品ChatGPT横空出世&#xff0c;并两个月之内吸引了超过1亿用户&#xff0c;打破了TikTok&#xff08;抖音国际版&#xff09;9个月用户破亿的纪录。 划时代的浪潮 ChatGPT的火爆立即引起了全球关注并成为热门话题&#xff0c;它…...

【yolov8目标检测】使用yolov8训练自己的数据集

目录 准备数据集 python安装yolov8 配置yaml 从0开始训练 从预训练模型开始训练 准备数据集 首先得准备好数据集&#xff0c;你的数据集至少包含images和labels&#xff0c;严格来说你的images应该包含训练集train、验证集val和测试集test&#xff0c;不过为了简单说…...

【vue+nestjs】gitee第三方授权登录【超详细】

项目场景&#xff1a; 前端使用vue3ts 后端使用nestjs 1.配置gitee第三方设置 1.找到账号设置 2.找到数据管理下的第三方应用 3.点击创建&#xff0c;进入配置 2.代码演示 特别注意: 如果你跟我一样是前后端分离的模式开发的&#xff0c;应用回调地址填写的应该是你的前…...

node 第八天 使用前后端不分离的方式实现cookie登录验证

实现cookie登录, 第一次登录成功后, cookie由服务端设置并保存在客户端, 后续访问在cookie过期前 (过期时间由后端设置) 将不需要登录cookie出现的背景是 HTTP是无连接的&#xff0c;无状态的, 半双工(http2.0以下), 所以需要一个媒介存在http中, 服务端可以操作, 客户端也可以…...

Ubuntu系统如何进行网络连接-连接电脑局域网-物联网开发-Ubuntu系统维护

一、前言 在Ubuntu系统的维护中&#xff0c;我们常常需要对VMware中的Ubuntu虚拟机配置网络连接&#xff0c;以连接服务器下载或安装软件包以及进行网络通信等。 基于上述问题&#xff0c;本文将着重分享Ubuntu配置网络链接的若干方法。 二、网络连接模式 打开VM&#xff0c;右…...

STL库——Vector常见使用接口

一、介绍 1. vector是表示可变大小数组的序列容器&#xff0c;就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的&#xff0…...

将文件(File 对象)分割成多个块

如果要将文件&#xff08;File 对象&#xff09;分割成多个块&#xff0c;可以使用 JavaScript 中的 Blob 和 File 构造函数以及数组的 slice 方法。以下是一个示例&#xff1a; // 创建一个 File 对象&#xff0c;例如从文件输入框获取的文件 const file document.getElemen…...

若要对多态类进行深拷贝,应使用虚函数的clone,而不是公开的拷贝构造赋值

拷贝一个多态类可能会导致切片问题&#xff0c;为了解决这个问题&#xff0c;应覆盖一个虚clone函数&#xff0c;让他根据实际类型进行复制并返回一个到新对象的所有权的指针&#xff08;std::unique_ptr&#xff09;,在派生类&#xff0c;通过使用所谓的协变返回类型来返回派生…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...