nginx--location详细使用和账户认证

在没有使用正则表达式的时候,nginx会先在server中的多个location选取匹配度最高的一个uri,uri是用户请求的字符串,即域名后面的web文件路径,然后使用该location模块中的正则url和字符串串,如果匹配成功就结束搜索,并使用此location处理此请求。

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

 正则表达

= 用于标准uri前,需要请求字串与uri精确匹配,如果匹配成功就停止向下匹配并立即处理请求。
~ 用于标准uri前,表示包含正则表达式并且区分⼤小写,并且匹配
!~ 用于标准uri前,表示包含正则表达式并且区分大小写,并且不匹配
~* 用于标准uri前,表示包含正则表达式并不区分大写,并且匹配
!~* 用于标准uri前,表示包含正则表达式并且不区大小写,并且不匹配
^~ 用于标准uri前,表示包含正则表达式并且匹配以什么开头
$ 用于标准uri前,表示包含正则表达式并且匹配以什么结尾
\ 用于标准uri前,表示包含正则表达式并且转义字符。可以转. * ?等
* 用于标准uri前,表示包含正则表达式并且代表任意⻓度的任意字符

匹配案例

精准匹配

[root@localhost ~]# cat /apps/nginx/conf/conf.d/pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;
}location = /1.jpg{root /data/nginx/static; 
}
}

 区分大小写

[root@localhost ~]# cat /apps/nginx/conf/conf.d/pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;}location ~ /X.?\.jpg{root /data/nginx/static;index index.html;}
}

 不区分大小写

[root@localhost ~]# cat /apps/nginx/conf/conf.d/pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;}location ~* /X.?\.jpg{root /data/nginx/static;index index.html;}
}

 区别:匹配访问路径,没有文件还是不能访问

URI开始

[root@localhost ~]# cat /apps/nginx/conf/conf.d/pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;}location ^~ /images {root /data/nginx;index index.html;}
}

 文件名后缀

[root@localhost ~]# cat /apps/nginx/conf/conf.d/pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;}location ~* \.(gif|jpg|jpeg|bmp|png|tiff|tif|ico|wmf|js)$ {root /data/nginx/images1;index index.html;}
}

 优先级

匹配优先级:=, ^~, ~/~*,/
location优先级:(location =) > (location 完整路路径) > (location ^~ 路路径) >
(location ~,~* 正则顺序) > (location 部分起始路路径) > (/)

 生产使用

直接匹配⽹网站根会加速Nginx访问处理理:
location = /index.html {
......;
}
location / {
......;
}
静态资源配置:
location ^~ /static/ {
......;
}
# 或者
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
......;
}
多应⽤用配置
location ~* /app1 {
......;
}
location ~* /app2 {
......;
}

nginx三层访问控制

访问控制基于模块ngx_http_access_module实现,可以通过匹配客户端源IP地址进行限制

[root@localhost ~]# cat /apps/nginx/conf/conf.d/pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;allow 192.168.13.0/24;deny 192.168.33.179;}
}

 账户认证功能

 htpasswd

安装

 yum install httpd-tools -y #Centos

apt install apache2-utils #Ubuntu

 参数
-c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
-n 不更新passwordfile,直接显示密码
-m 使用MD5加密(默认)
-d 使用CRYPT加密(默认)
-p 使用普通文本格式的密码
-s 使用SHA加密
-b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
-D 删除指定的用户
使用创建用户

htpasswd -cbm /apps/nginx/conf/.htpassed user1 123456

htpasswd -bm /apps/nginx/conf/.htpassed user2 123456

查看

 nginx开启登录验证

[root@localhost ~]# cat /apps/nginx/conf/conf.d/pc.conf 
server {listen 80;server_name www.fxq.com;location / {root /data/nginx/html/pc;index index.html;auth_basic  "login password";auth_basic_user_file /apps/nginx/conf/.htpassed;}
}

        

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

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

相关文章

C语言----贪吃蛇(补充)

各位看官好,我想大家应该已经看过鄙人的上一篇博客贪吃蛇了吧。鄙人在上一篇博客中只是着重的写了贪吃蛇的实现代码,但是前期的一些知识还没有具体的介绍,比如确认光标位置,句柄等。那么我这一篇博客就来补充上一篇博客所留下来的…

神经网络中的优化方法

一、引入 在传统的梯度下降优化算法中,如果碰到平缓区域,梯度值较小,参数优化变慢 ,遇到鞍点(是指在某些方向上梯度为零而在其他方向上梯度非零的点。),梯度为 0,参数无法优化&…

数据结构-AVL树

目录 什么是 AVL 树 ASL 度量查找效率 结构体定义 平衡调整 调整类型 左旋和右旋 右旋 左旋 左、右平衡调整 左平衡调整 右平衡调整 插入数据 模拟建立 AVL 树 什么是 AVL 树 二叉排序树的形状取决于数据集,当二叉树的高度越小、结构越合理&#xff0c…

thinkphp家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单安装教程

介绍 thinkphp家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单安装教程 上门预约服务派单小程序家政小程序同城预约开源代码独立版安装教程 程序完整,经过安装检测,可放心下载安装。 适合本地的一款上门预约服务小程序&#xff0…

计算机网络——初识网络

一、局域网与广域网 1.局域网(LAN) 局域网:即Local Area Network,简称LAN。Local即标识了局域⽹是本地,局部组建的⼀种私有⽹络。局域⽹内的主机之间能⽅便的进⾏⽹络通信,⼜称为内⽹;局域⽹和…

A4的PDF按A3打印

先用办公软件打开,比如WPS。 选择打印-属性。 纸张选A3,如果是双面打印,选短边装订,然后在版面-页面排版-每张页数(N合1)选2。 不同打印机的具体配置可能不一样,但大体都是这个套路。

[NSSCTF]prize_p1

前言 之前做了p5 才知道还有p1到p4 遂来做一下 顺便复习一下反序列化 prize_p1 <META http-equiv"Content-Type" content"text/html; charsetutf-8" /><?phphighlight_file(__FILE__);class getflag{function __destruct(){echo getenv(&qu…

The Role of Subgroup Separability in Group-Fair Medical Image Classification

文章目录 The Role of Subgroup Separability in Group-Fair Medical Image Classification摘要方法实验结果 The Role of Subgroup Separability in Group-Fair Medical Image Classification 摘要 研究人员调查了深度分类器在性能上的差异。他们发现&#xff0c;分类器将个…

基于Springboot的民宿管理平台

基于SpringbootVue的民宿管理平台设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 民宿信息 后台登录 后台首页 用户管理 商家管理 民宿信息管理 房间类型管理 …

【正版系统】知识付费系统搭建,系统模板开发完善功能强大,支持快速部署上线

在数字化时代&#xff0c;知识付费已成为一种趋势&#xff0c;为内容创作者和求知者搭建了一个高效的交流平台。今天&#xff0c;我要为大家介绍一款功能强大的知识付费系统。 知识付费系统模板是我们一款经过精心开发、完善的系统&#xff0c;旨在为用户提供一站式的知识付费…

【Docker】如何注册Hub账号并上传镜像到Hub仓库

一、创建Hub账户 浏览器访问&#xff1a;hub.docker.com 点击【Sign up】注册账号 输入【邮箱】【用户名】【密码】 ps&#xff1a;用户名要有字母数字&#xff1b;订阅不用勾选 点击【Sign up】注册即可 点击【Sign in】登录账号 输入【邮箱】【密码】 点击【Continue】登录 二…

Unreal 编辑器工具 批量重命名资源

右键 - Editor Utilities - Editor Utility Blueprint&#xff0c;基类选择 Asset Action Utility 在类默认值内&#xff0c;可以添加筛选器&#xff0c;筛选指定的类型 然后新建一个函数&#xff0c;加上4个输入&#xff1a;ReplaceFrom&#xff0c;ReplaceTo&#xff0c;Add…

大数据学习笔记14-Hive基础2

一、数据字段类型 数据类型 &#xff1a;LanguageManual Types - Apache Hive - Apache Software Foundation 基本数据类型 数值相关类型 整数 tinyint smallint int bigint 小数 float double decimal 精度最高 日期类型 date 日期 timestamps 日期时间 字符串类型 s…

nginx--自定义日志跳转长连接文件缓存状态页

自定义日志服务 [rootlocalhost ~]# cat /apps/nginx/conf/conf.d/pc.conf server {listen 80;server_name www.fxq.com;error_log /data/nginx/logs/fxq-error.log info;access_log /data/nginx/logs/fxq-access.log main;location / {root /data/nginx/html/pc;index index…

使用STM32F103C8T6与蓝牙模块HC-05连接实现手机蓝牙控制LED灯

导言: 在现代智能家居系统中,远程控制设备变得越来越普遍和重要。本文将介绍如何利用STM32F103C8T6单片机和蓝牙模块HC-05实现远程控制LED灯的功能。通过这个简单的项目,可以学会如何将嵌入式系统与蓝牙通信技术相结合,实现远程控制的应用。 目录 导言: 准备工作: 硬…

Java零基础入门到精通_Day 11

1.继承 定义&#xff1a; 继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法&#xff0c;还可以在子类中重新定义&#xff0c;追加属性和方法 格式&#xff1a; public class 子类 extends 父类{} 子类&#xff1a;也叫派生类 父类&#xff1a;基类/超类 继…

低代码技术在构建质量管理系统中的应用与优势

引言 在当今快节奏的商业环境中&#xff0c;高效的质量管理系统对于组织的成功至关重要。质量管理系统帮助组织确保产品或服务符合客户的期望、符合法规标准&#xff0c;并持续改进以满足不断变化的需求。与此同时&#xff0c;随着技术的不断进步&#xff0c;低代码技术作为一…

机器学习笔记-14

机器学习系统设计 1.导入 以垃圾邮件分类器为例子&#xff0c;当我们想要做一个能够区分邮件是否为垃圾邮件的项目的时候&#xff0c;首先在大量垃圾邮件中选出出现频次较高的10000-50000词作为词汇表&#xff0c;并为其设置特征&#xff0c;在对邮件分析的时候输出该邮件的特…

计算机网络-408考研

后续更新发布在B站账号&#xff1a;谭同学很nice http://【计算机408备考-什么是计算机网络&#xff0c;有什么特点&#xff1f;】 https://www.bilibili.com/video/BV1qZ421J7As/?share_sourcecopy_web&vd_source58c2a80f8de74ae56281305624c60b13http://【计算机408备考…

在idea中连接mysql

IDE&#xff08;集成开发环境&#xff09;是一种软件应用程序&#xff0c;它为开发者提供编程语言的开发环境&#xff0c;通常集成了编码、编译、调试和运行程序的多种功能。一个好的IDE可以大幅提高开发效率&#xff0c;尤其是在进行大型项目开发时。IDE通常包括以下几个核心组…