nginx配置中的服务器名称

news/2024/9/17 7:19:15/ 标签: 服务器, nginx, linux

通常,在nginx的配置节中:

server {listen       80;server_name  example.org  www.example.org;...
}

server_name(服务器名称) 指令定义确定哪个服务器块用于给定请求。可以使用确切名称、通配符名称、ip地址或正则表达式来定义它们:

server {listen       80;server_name  example.org  www.example.org;...
}server {listen       80;server_name  *.example.org;...
}server {listen       80;server_name  mail.*;...
}server {listen       80;server_name  ~^(?<user>.+)\.example\.net$;...
}

按名称搜索虚拟服务器时,如果 name 与多个 指定的变体,例如通配符名称和正则表达式都匹配, 将按以下优先顺序选择第一个匹配的变体:

  1. 精确名称
  2. 以星号开头的最长通配符名称,例如 *.example.org
  3. 以星号结尾的最长通配符名称,例如 mail.*
  4. 第一个匹配的正则表达式 (按在配置文件中出现的顺序)

正则表达式名称

nginx 使用的正则表达式与使用的正则表达式兼容 通过 Perl 编程语言 (PCRE)。 要使用正则表达式,服务器名称必须以波浪号 字符:

server_name  ~^www\d+\.example\.net$;

否则,它将被视为确切名称,或者如果表达式包含 星号,作为通配符名称(很可能是无效名称)。 不要忘记设置 “” 和 “” 锚点。 它们不是语法上的要求,而是逻辑上的要求。 另请注意,域名点应使用反斜杠进行转义。 包含字符 “” 的正则表达式 和 “” 应引用:^${}

server_name  "~^(?<name>\w\d{1,3}+)\.example\.net$";

否则 nginx 将无法启动并显示错误消息:

directive "server_name" is not terminated by ";" in ...

命名正则表达式捕获稍后可用作变量:

server {server_name   ~^(www\.)?(?<domain>.+)$;location / {root   /sites/$domain;}
}

PCRE 库使用以下语法支持命名捕获:

?<name>Perl 5.10 兼容语法,自 PCRE-7.0 起支持
?'name'Perl 5.10 兼容语法,自 PCRE-7.0 起支持
?P<name>Python 兼容语法,自 PCRE-4.0 起支持

如果 nginx 启动失败并显示错误消息:

pcre_compile() failed: unrecognized character after (?< in ...

这意味着 PCRE 库是旧的,并且语法 应该改为尝试 “”。 捕获也可以以数字形式使用:?P<name>

server {server_name   ~^(www\.)?(.+)$;location / {root   /sites/$2;}
}

但是,这种用法应仅限于简单的情况(如上所示), 因为数字参考很容易被覆盖。


http://www.ppmy.cn/news/1522682.html

相关文章

如何在 AWS S3 中设置跨区域复制

如何在 AWS S3 中设置跨区域复制 概述 欢迎来到雲闪世界。 Amazon Simple Storage Service (S3) 是一种可扩展的对象存储服务&#xff0c;广泛用于存储和检索数据。其主要功能之一是跨区域复制 (CRR)&#xff0c;允许跨不同的 AWS 区域自动异步复制对象。此功能对于灾难恢复、…

二手手机回收小程序搭建,小程序功能特点

随着社会生活水平的提高&#xff0c;对手机的更新换代的速度也在逐渐加快&#xff0c;出现了大量的闲置手机&#xff0c;而这也给手机回收市场带来了巨大的发展空间&#xff01; 目前&#xff0c;手机回收市场进入到了发展快速期&#xff0c;吸引了越来越多的企业加入大市场中…

4.7 Sensors -- useScroll

4.7 Sensors – useScroll https://vueuse.org/core/useScroll/ 作用 响应式的监听滚动位置和状态。 官方示例 <script setup lang"ts"> import { useScroll } from vueuse/coreconst el ref<HTMLElement | null>(null) const { x, y, isScrolling…

Spring常用中间件

1. 数据库中间件 &#xff08;1&#xff09;MySQL: 常用的关系型数据库&#xff0c;支持JDBC和JPA。 &#xff08;2&#xff09;PostgreSQL: 功能强大的开源关系型数据库&#xff0c;支持复杂查询。 &#xff08;3&#xff09;MongoDB: NoSQL数据库&#xff0c;适合存储非结构化…

【Rust练习】13.数组

练习题来自&#xff1a;https://practice-zh.course.rs/compound-types/array.html 1 fn main() {// 使用合适的类型填空let arr: __ [1, 2, 3, 4, 5];// 修改以下代码&#xff0c;让它顺利运行assert!(arr.len() 4); }显然这个数组的长度是5. fn main() {// 使用合适的类…

ELK学习笔记(三)——使用Filebeat8.15.0收集日志

使用Filebeat收集日志 前面教程已经把ElasticSearch和Kibana部署完毕&#xff0c;接着我们就要使用filebeat去收集我们的java服务日志&#xff0c;这里首先介绍一下ELK和EFK的区别。 一、ELK和EFK的区别 在收集和处理日志时&#xff0c;使用 ELK&#xff08;Elasticsearch, …

8. GIS数据分析师岗位职责、技术要求和常见面试题

本系列文章目录&#xff1a; 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…

tabBar设置底部菜单选项以及iconfont图标

tabBartabBar属性:设置底部 tab 的表现 ​ ​ ​ ​ 首先在pages.json页面写一个tabBar对象,里面放入list对象数组,里面至少要有2个、最多5个 tab, 如果只有一个tab的话,H5(浏览器)依然可以显示底部有一个导航栏,如果没有,需要重启后才有,小程序则报错,只有2个以上才可以…

C# 窗口页面布局

1.Groupbox 单机鼠标右键&#xff0c;置于底层 2.Label 在右方属性中修改名称 3.ComboBox 点击属性中的集合&#xff0c;可以添加选择项 4.CheckBox 在属性中修改名称 5.RichTextBox 富文本 在属性中修改名称与区域 6.StatusStrip 状态栏 将AutoSize改成false就可以修改…

基于Java的宿舍报修管理系统的设计与实现(论文+源码)_kaic

基于Java的宿舍报修管理系统的设计与实现(论文源码)_kaic 摘  要 随着教育改革‎‏的不断‎‏深入&#xff0c;‎‏学校宿‎‏舍的管‎‏理体系‎‏也在不‎‏断地完‎‏善&#xff0c;校园后勤服务是学校管理的重要工作&#xff0c;学校提供优秀的后勤服务&#xff0c;能提…

C语言代码练习(第十七天)

今日练习&#xff1a; 45、输出100-1000之间所有的“水仙花数”&#xff0c;所为的水仙花数是一个三位数&#xff0c;其各位数字立方和等于该数本身。例如153是一个水仙花数。因为1*1*15*5*53*3*3 46、一个数如果恰好等于它的因子之和&#xff0c;这个数就称为"完数"…

AI视频百万播放,用这个免费的AI工具,3步教你制作爆款治愈系视频!(附完整教程)

大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 今天一位粉丝发了一个视频链接&#xff0c;问这类治愈系风景的…

centos基本命令

当前登录用户&#xff08;root&#xff09; 用户组 其它用户 rwxr-xr-x cd 后加/目录名/子目录 切换到目录 cd .. 切换到父目录 CentOS Windows $>ls 查看某个目录有哪文件和目录 cmd>dir …

机器学习:多种算法处理填充后的数据

在机器学习中&#xff0c;填充数据&#xff08;即处理缺失值&#xff09;后&#xff0c;选择合适的算法并优化模型以提高召回率是一个常见的任务。召回率是指模型正确识别的正例占所有实际正例的比例。 代码思路&#xff1a; 数据预处理&#xff1a; 导入填充后的数据 …

Python | Leetcode Python题解之第386题字典序排数

题目&#xff1a; 题解&#xff1a; class Solution:def lexicalOrder(self, n: int) -> List[int]:ans [0] * nnum 1for i in range(n):ans[i] numif num * 10 < n:num * 10else:while num % 10 9 or num 1 > n:num // 10num 1return ans

太速科技-1路万兆光纤SFP+和1路千兆网络 FMC子卡模块

1路万兆光纤SFP和1路千兆网络 FMC子卡模块 一、概述 该板卡是基于kc705和ml605的fmc 10g万兆光纤扩展板设计&#xff0c;提供了1路万兆光纤SFP和1路千兆网络接口。可搭配我公司开发的FPGA载卡使用。载卡可参考&#xff1a;ID204 SFP&#xff08;10 Gigabit Small…

1-10 图像增强对比度 opencv树莓派4B 入门系列笔记

目录 一、提前准备 二、代码详解 enhanced_image cv2.convertScaleAbs(image, alpha1.5, beta0) 三、运行现象 四、完整工程贴出 一、提前准备 1、树莓派4B 及 64位系统 2、提前安装opencv库 以及 numpy库 3、保存一张图片 二、代码详解 import cv2 # 增强图像的对比度 …

【Arm Cortex-X925】 -【第五章】-电源管理

5. 电源管理 Cortex-X925 核心提供了控制动态和静态功耗的机制。 动态功耗管理包括以下特性: 层次时钟门控每核心的动态电压和频率调整 (DVFS)静态功耗管理包括以下特性: 关机模式动态保持,一种低功耗模式,能够保留寄存器和 RAM 状态5.1 电压和功率域 DynamIQ™ Shared …

代码随想录Day 32|leetcode题目:501.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划理论基础一、理论基础1.1 什么是动态规划1.2 动态规划的解题步骤1.3 动态规划应该如何debug 二、题目题目一&#xff1a; 509. 斐波那契数解题思路&#xff1a;动态规划递归解法 题目二&a…

【OpenWrt(3)】内网搭建iperf3测速服务器

下载的iperf3 网站&#xff1a;https://iperf.fr/iperf-download.php Window地址&#xff1a;https://github.com/ar51an/iperf3-win-builds 安卓&#xff1a;https://gitee.com/hiyanyx/magic-i-perf 文章目录 下载的iperf3Windows 服务器启动安卓客户端启动参考 Windows 服务…