小白成长之路-Nginx配置(二)

文章目录

  • 一、localtion配置
    • 1.匹配规则
    • 2.匹配优先级
    • 3.配置案例
  • 二、rewrite
    • 1、 语法
    • 2、 可写入字段
    • 3 配置案例
    • 4 if 指令
    • 5.sutoindex
    • 6. nginx配置中的常用变量
  • 三、配置Nginx状态统计
    • 1.下载vts模块
    • 2.编译nginx


提示:以下是本篇文章正文内容,下面案例可供参考

一、localtion配置

配置路径

location [ = | ~ | ~* | ^~ ] uri {

}
##在浏览器中输入的:http://www.jx.com/s?id=1&test=123,称作URL,即:统一资源定位符
##在WEB服务器中,对资源进行标识,URI,即统一资源标识符
写在server字段中。

1.匹配规则

- **=** 精确匹配;
- **~** 正则匹配,区分大小写;
- **~\*** 正则匹配,不区分大小写;
- **^~** 匹配到即停止搜索;

2.匹配优先级

= > ^~ > ~ > ~* > 不带任何字符 “/”。

3.配置案例

在这里插入图片描述
在这里插入图片描述
注:
1.

匹配的文件或者目录
location /test {

}
只匹配目录
location /test/ {

}

2.return ::停止处理请求,直接返回响应码或重定向到其他 URL ;执行 return 指令后, location 中后续指令将不会被执行

return code [text];
return code URL;
return URL;例如:
location / {return 404; # 直接返回状态码
}location / {return 404 "pages not found"; # 返回状态码 + 一段文本
}#location / {
#  return 302 /bbs ; # 返回状态码 + 重定向地址
#}location / {return https://www.baidu.com ; # 返回重定向地址
}

二、rewrite

根据指定正则表达式匹配规则,重写 URL 。应用场景: 新老域名的更替!!!

1、 语法

rewrite 正则表达式 要替换的内容 [flag];

2、 可写入字段

server、location、if

示例:

rewirte /images/(.*\.jpg)$ /pic/$1; # $1是前面括号(.*\.jpg)的反向引用

flag 可选值的含义:

  • last: 重写后的 URL 发起新请求,再次进入 server 段,重试 location 的中的匹配;
  • break :直接使用重写后的 URL ,不再匹配其它 location 中语句;
  • redirect :返回 302 临时重定向;
  • permanent :返回 301 永久重定向。

3 配置案例

server{listen 80;server_name www.jx.com; # 要在本地hosts文件进行配置root /usr/share/nginx/html;location /search {rewrite ^/(.*) https://www.baidu.com redirect;}location /images {rewrite /images/(.*) /pics/$1;}location /pics {rewrite /pics/(.*) /photos/$1;}location /photos {}
}
###生产环境不能使用.*,表示匹配任意!!!
#解析:
#当访问 www.jx.com/search 时,会自动帮我们重定向到 https://www.baidu.com;
#当访问 www.jx.com/images/1.jpg 时,第一步重写 URL 为 www.jx.com/pics/1.jpg ,找到 pics 的 location ,继续重写 URL 为 www.jx.com/photos/1.jpg ,找到 /photos 的 location 后,去 html/photos 目录下寻找 1.jpg 静态资源。

4 if 指令

**语法:**if (condition) {…}

**可写字段:**server、location

示例:

        location / {if ($http_user_agent ~ Chrome) {rewrite /(.*) /Chrome/$1 break;}if ($http_user_agent ~ Firefox) {rewrite /(.*) /Firefox/$1 break;}}
##测试192.168.115.111/index.html
set $var value; #设置变量

condition 判断条件:

  • $variable 仅为变量时,值为空或以0开头字符串都会被当做 false 处理;
  • = 或 != 相等或不等;
  • ~ 正则匹配;
  • ! ~ 非正则匹配;
  • ~* 正则匹配,不区分大小写;
  • -f 或 ! -f 检测文件存在或不存在;
  • -d 或 ! -d 检测目录存在或不存在;
  • -e 或 ! -e 检测文件、目录、符号链接等存在或不存在;
  • -x 或 ! -x 检测文件可以执行或不可执行;

配置实例

server {listen 8080;server_name www.jx.com;root /usr/share/nginx/html;location / {if ( $uri = "/images/" ){rewrite (.*) /pics/ break;}}
}
#当访问 www.jx.com/images/ 时,会进入 if 判断里面执行 rewrite 命令。

5.sutoindex

用户请求以 / 结尾时,列出目录结构,可以用于快速搭建静态资源下载网站。

这里是引用`在这里插入代码片
server {
listen 80;
server_name www.jx.com;
location /download/ {
root /usr/share/nginx/html;
autoindex on; # 打开 autoindex,,可选参数有 on | off
autoindex_exact_size on; # 修改为off,以KB、MB、GB显示文件大小,默认为on,以bytes显示出⽂件的确切⼤⼩
autoindex_format html; # 以html的方式进行格式化,可选参数有 html | json | xml
autoindex_localtime off; # 显示的⽂件时间为⽂件的服务器时间。默认为off,显示的⽂件时间为GMT时间
}
}
#当访问 www.jx.com/download/ 时,会把服务器 /usr/share/nginx/html/download/ 路径下的文件展示出来.

`

6. nginx配置中的常用变量

变量名含义
remote_add客户端IP地址
remote_port客户端端口
server_addr服务端IP地址
Server_port服务端端口
server_protocol服务端协议
binary_remote_addr二进制格式的客户端IP地址
connectionTCP连接的序号,递增
connection_requestTCP连接当前的请求数量
uri请求的URL,不包含参数
request ur请求的URL,包含参数
scheme协议名,http或https
request metho请求方法
request_length全部请求的长度,包含请求行、请求头、请求体
args全部参数字符串
arg_参数名获取特定参数值
is_argsURL中是否有参数,有的话返回?,否则返回空
query_string与args相同
host请求信息中的Host,如果请求中没有Host行,则在请求头中找,最后 使用nginx中设置的server_name。
http_user_agent用户访问方式
http_referer从哪些链接过来的请求
http_via每经过一层代理服务器,都会添加相应的信息
http_cookie获取用户cookie
request time处理请求已消耗的时间
https是否开启了https,是则返回on,否则返回空
request_filename磁盘文件系统待访问文件的完整路径
document_root由URI和root/alias规则生成的文件夹路径
limit_rate返回响应时的速度上限值

三、配置Nginx状态统计

1.下载vts模块

https://github.com/vozlt/nginx-module-vts

2.编译nginx

tar xf nginx-module-vts-master.zip
cd nginx-1.22.1/
./configure --prefix=/usr/local/nginx/ --add-module=/root/nginx-module-vts-master && make && make install

注:
如果之前是编译安装,在安装新的模块前带上之前编译的所有模块,然后再make&&make install
在这里插入图片描述
把原来的备份一下
mv /usr/local/nginx/sbin/nginx /opt/nginx.bak
新的移动到我们定义的目录下
cp ./nginx /usr/local/nginx/sbin
在检查下版本就有这个新的模块了在这里插入图片描述

在去 /usr/local/nginx//conf/nginx.conf下添加如下内容
在这里插入图片描述

在这里插入图片描述
访问结果
在这里插入图片描述

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

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

相关文章

Qt的第一个程序

Qt的第一个程序 1.hello world2.使用图形化拖拽方式3.使用C代码的方式3.1.头文件3.2.setText3.3.对象树 4.设计MyLabel5.乱码问题 🌟🌟hello,各位读者大大们你们好呀🌟🌟 🚀🚀系列专栏&#xff…

图书数据接口

基本说明: 接口地址:http://data.isbn.work/openApi/getInfoByIsbn?isbn{isbn}&appKey{appkey}返回格式:json请求方式:get请求示例:http://data.isbn.work/openApi/getInfoByIsbn?isbn9787513159074&appKey…

MongoDB原理

目录 一、概念 二、架构 2.1 逻辑结构 2.2 数据模型 2.3 存储引擎:WiredTiger 三、事务 一、概念 MongoDB是文档数据库,基本存储单元是 文档(Document),以BSON格式(一种类json的二进制形式&#xff…

《解码音频:从基础到未来的听觉探索》

音频:开启声音世界的大门 在生活的每一个角落,音频如影随形,编织出丰富多彩的听觉体验。清晨,第一缕阳光尚未完全照进房间,手机里温柔的闹钟铃声,将我们从睡梦中轻轻唤醒,开启活力满满的一天。通…

web安全之h2注入系统学习

起初是在N1 Junior 2025 上面碰到一题,考点是h2的sql注入。由于之前没有见过,趁此机会系统学习一番 实验代码 public class H2Inject {public static void main(String[] args) throws Exception{JdbcDataSource dataSource new JdbcDataSource();dataS…

AWS认证系列:考点解析 - cloud trail,cloud watch,aws config

🎯一句话总览: 服务名类比/角色主要功能CloudTrail监控摄像头录像回放记录“谁在什么时候做了什么操作”CloudWatch护士测体温 护士喊医生实时监控系统状态,并能报警/自动应对AWS Config保安巡逻 记录资产变更历史记录 AWS 资源的“配置状…

Java八股文——数据结构「数据结构篇」

了解哪些数据结构? 面试官您好,我了解并使用过多种数据结构。在我的理解中,数据结构可以分为几个大的类别,每一类都有其独特的优势和适用场景。 1. 线性结构 (Linear Structures) 这类结构的特点是数据元素之间存在一对一的线性…

C#测试调用EPPlus根据批注设置excel单元格内容

EPPlus也是常用的Excel文件操作库,但不同于ClosedXML,使用EPPlus前需要设置授权信息,商业应用需要设置商业授权,个人使用或非商业应用也需要设置授权(测试的时候只需设置全名,保存excel文件时会保存到文件详…

windows本地搭建skywalking, 线程池中traceId不丢失

1.从官网下载9.0.0版本 Downloads | Apache SkyWalking 其它历史版本的 下载地址 Index of /dist/skywalking 这个页面 可以下载 apm服务: apache-skywalking-apm-9.0.0.tar.gz agent的包: apache-skywalking-java-agent-9.0.0.tgz 2.解压后, (看情况去config路径下 appli…

多模态大语言模型arxiv论文略读(135)

Agent S: An Open Agentic Framework that Uses Computers Like a Human ➡️ 论文标题:Agent S: An Open Agentic Framework that Uses Computers Like a Human ➡️ 论文作者:Saaket Agashe, Jiuzhou Han, Shuyu Gan, Jiachen Yang, Ang Li, Xin Eric…

wpa_supplicant连接到了路由,但是 udhcpc会分配到不同网段的ip,路由器ip为192.168.0网段,板子分配ip为192.168.1的网段

wpa_supplicant连接到了路由,但是 udhcpc会分配到不同网段的ip,路由器ip为192.168.0网段,板子分配ip为192.168.1的网段 你提到的情况: 使用 wpa_supplicant 成功连接到路由器; 然后通过 udhcpc(DHCP客户端&#xff09…

[Hestia]开源网络服务器控制面板,快速、可靠、开源

测评介绍 本期测评试用一下Hestia这款面板。Hestia是一个由国际社区支持开发的开源项目,2019年正式发布,目前已积累1.1万余次代码提交,几乎每周都有十多次的代码提交,更新热度很高。仅支持比较新的debian和ubuntu,对于…

Windows 安装 Redis8.0.2

1.下载 Releases redis-windows/redis-windowshttps://github.com/redis-windows/redis-windows/releases 下载后直接解压到想要的安装目录就行了,启动Redis直接双击 redis-server.exe 文件就行了,Redis启动后双击 redis-cli.exe 就可以直接连接到Redi…

GitHub中openmmlab和Detectron2的区别

MMDetection 和 Detectron2 都是计算机视觉领域中流行的开源目标检测框架,它们有许多相似之处,但也存在一些关键差异。以下是两者的主要区别: 1. 开发团队与社区 MMDetection 由中国开源组织 OpenMMLab 开发维护,社区以中文用户为…

开疆智能CCLinkIE转ModbusTCP网关连接施耐德TCP从站配置案例

本案例是三菱PLC通过CCLinkIE转ModbusTCP网关连接施耐德Modicon M262 Logic/Motion Controller的配置案例 配置方法: 首先设置Modicon M262 Logic/Motion Controller Modbus TCP 从站设备 I/O 映射选项卡 I/O 以如下方式从主站视角映射到 Modbus 寄存器&#xff1…

【源码】Reactive 源码

前言 用了很长时间的 componsition-api 了,最近想看看源码,抱着单纯的学习心态先从 reactive 开始吧。 个人习惯: 看代码要带着问题去看,不要盲目的去看问题就是这次看源码的主线,要围绕着主线去展开,过…

银河麒麟 | ubuntu 安装国产达梦DM8数据库(安装+外网通+IDEA连接)

目录 官网下载安装 下载安装包 创建安装用户组dinstall 创建安装用户dmdba并指定组 创建DM8软件安装目录修改权限 检查、修改系统资源限制 解压.zip的压缩包 安装mount数据库 图形化安装 清除之前的挂载 开启Disql服务 修改dmdba的环境变量 检查状态 进入数据库 …

MySQL与Oracle视图:深入解析与全面对比

视图概念 视图在 MySQL 与Oracle中本质上是一种虚拟表,其数据并非实际存储,而是基于一个或多个基础表的查询结果动态生成。它像是对复杂查询的一种封装,极大地简化了数据的查询操作。例如,当我们需要频繁从多个关联表中获取特定数…

uniapp通过webview套h5时使用plus调取蓝牙/usb打印

安卓使用usb调取打印机 /*** 安卓usb调取打印机*param { string | bytes[] } html 传入的打印内容*传入一段文本或一个bytes数组* returns*/ export const printUsb (html) > {return new Promise((resolve, reject) > {if (!window.plus) return reject(new Error(&qu…

吃透 Golang 基础:基于共享变量的并发

文章目录 sync.Mutex 互斥锁sync.RWMutex 读写锁sync.Once 惰性初始化Goroutine 与线程动态栈Goroutine 调度GOMAXPROCSGoroutine 没有 ID 号 上一篇文章当中我们已经系统性地回顾了在 Go 当中基于 Goroutine 和 Channel 进行并发控制的方法,Goroutine 指的是 Golan…