Nginx 配置(Config)中遇到的错误(Error)
原文:https://ichochy.com/posts/software/20231125.html
nginx location 正则错误写法
location 错误的写法
匹配请求目录地址 /555
server {
location ~ ^/\d{2,3}$ {
……
}
}
分析正则
location ~ ^/\d{2,3}$
~ 为开启正则匹配,这个不能少
^ 为字符的开始匹配,字符以后面的规则开始
/ 为第一个匹配字符 /
\d 匹配数字
{2,3} 限定数字的个数 2-3 个
$ 为字符的结束匹配,字符以前面的规则结束
上面的会出现错误 pcre_compile() failed: missing
正则解析失败,正则表达式正常是没有问题的,让人很误解
但在nginx中不能这样写,需要加上双引号("")
location 正则的正确写法
location ~ "^/\d{2,3}$"
注意:中/英文输入法,需要英文符号的双引号("")
正则规则
~ 表示执行一个正则匹配,区分大小写
~* 表示执行一个正则匹配,不区分大小写
^~ 表示普通字符匹配,不使用正则匹配,一般用来匹配目录
= 进行普通字符精确匹配
@ "@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files
!~ 表示正则不匹配,排除正则的匹配,区分大小写
!~* 表示正则不匹配,排除正则的匹配,不区分大小写
. 匹配除换行符以外的任意字符
? 重复0次或1次
+ 重复1次或更多次
* 重复0次或更多次
\d 匹配数字
^ 匹配字符串的开始
$ 匹配字符串的结束
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n-m次
[a] 匹配单个字符a
[a-z] 匹配a-z小写字母的任意一个
nginx 反向代理不能使用变量
server {
location ~ "^/(\d{2,3})$" {
proxy_pass https://$1.ichochy.com
……
}
}
问题来了
上面的配置没有生效,总是报错
Web 访问出现 502 Bad Gateway 错误,nginx 报错
当 proxy_pass 使用变量时会出现没有解析器解析域名的错误
日志出现如下的错误:
no resolver defined to resolve ichochy.com
修正错误
没有解析器就给它指定一个
resolver 8.8.8.8;
完整的配置信息
server{
location ~ "^/(\d{2,3})$" {
resolver 8.8.8.8;
proxy_pass https://$1.ichochy.com
……
}
}
例: 请求地址https://ichocy.com/555location匹配到 /555,而$1代表的就是555,所以https://$1.ichochy.com就是https://555.ichochy.com
注:$1 代表正则第一个小括号()中匹配的信息$2 代表正则第二个小括号()中匹配的信息,以此内推 $3 ……
这样,请求地址 https://ichocy.com/555 ,就被反向代理到 https://555.ichochy.com
修改配置文件
# nginx 配置文件
vi /etc/nginx/nginx.conf
# 网站配置文件
vi /etc/nginx/sites-available/default
查看日志
# 错误日志
tail -f /var/log/nginx/error.log
# 请求日志
tail -f /var/log/nginx/access.log
相关文章
5 款适用于 Linux 的笔记应用2022/09/02
mysql 使用 source/mysqldump 命令导入/导出文件信息2020/02/22
12 个对新手最重要的 Linux 命令2022/11/08
微软为 VS Code 推出 Markdown 语言服务器2022/08/10
强!腾讯推出开源免费老照片修复工具!2022/05/05
Nginx 配置(Config)中遇到的错误(Error)的更多相关文章
- nginx配置url中带问号的rewrite跳转
今天收到一个需求,要将一个带查询参数的url跳转到另外一个静态url,安装常规的rewrite规则,如: rewrite ^/a.html?id=67$ http://zt.epython.cn/20 ...
- ldap安装配置过程中遇到的错误,以及解决方法
错误1: [root@openldap openldap]# ldapsearch -LLL-W -x -H ldap://etiantian.org -D "cn=admin,dc=eti ...
- nodejs出现events.js:72中抛出错误 Error: listen EADDRINUSE
<pre>events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoExce ...
- nginx配置过程中出现的问题
在安装nginx时我们先创建用户useradd -s /sbin/nologin -M nginx 不然会报nginx: [emerg] getpwnam("nginx") fai ...
- TFS 2010 配置的时候,提示TF255466错误
TFS 2010 配置的时候,提示TF255466错误 Error [ System Checks ] TF255466: The configuration process for Team Fou ...
- web.config中配置页面出错后跳转指定错误页面
每当用户访问错误页面时,会出现不友好的404错误,所以为了防止这种不友好,我们在web.config中的<system.web>节点下配置 <customErrors>,在出现 ...
- asp.net mvc 3 配置全局错误处理 Web.config中设置CustomError
摘自: http://www.myexception.cn/web/1130191.html asp.net mvc 配置全局异常处理 Web.config中设置CustomError Web.con ...
- f-stack中nginx配置后make出现error: ignoring return value of ‘ftruncate’
问题 Nginx 配置后 make 出现error: src/os/unix/ngx_process_cycle.c: In function 'ngx_start_worker_processes' ...
- nginx中的502错误
遇到这种情况,首先看一下慢日志 [17-Aug-2015 13:13:43] WARNING: [pool www] child 27780, script '/data/s.com/index.ph ...
- 配置web项目出的各种error (安装sql2008错误,网站连接数据库error错误等等)
一个破error:40 错误搞出了很多莫名其妙的为问题,搞了5天,最后重装系统加上重新配置终于好了. 1. 关于SQL 2008 安装错误 安装之前必须安装VS2008 SP1 安装到最后提示 试 ...
随机推荐
- 什么是 CSS 设计模式
这是转载的,先收藏到我的博客园. 什么是设计模式? 曾有人调侃,设计模式是工程师用于跟别人显摆的,显得高大上:也曾有人这么说,不是设计模式没用,是你还没有到能懂它,会用它的时候. 先来看一下比较官方的 ...
- 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)
上两篇文章<探秘MySQL索引底层原理,解锁数据库优化的关键密码(上)>和<探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(中)>主要讲了MySQL索引的底层原理,且 ...
- 一文速通Python并行计算:06 Python多线程编程-基于队列进行通信
一文速通 Python 并行计算:06 Python 多线程编程-基于队列进行通信 摘要: 队列是一种线性数据结构,支持先进先出(FIFO)操作,常用于解耦生产者和消费者.慢速生产-快速消费场景中,队 ...
- 基于Spring Boot的HTTP请求签名验证实现解析
概述 在分布式系统交互中,API接口的安全性至关重要.本文将深入解析基于Spring Boot实现的HTTP请求签名验证机制,该方案支持GET/POST等多种请求方式,提供时效性验证和数据完整性保障. ...
- SpringBoot3整合SpringSecurity6(一)快速入门
大家好,我是晓凡. 写在前面 不知道小伙伴们在学SpringSecurity过程中有没有和我一样的经历和烦恼. ①看完一篇文章或者一个教程,感觉学会了.但是一到实际项目中就不知道怎么用: ②被Spri ...
- DNS滥用如何进行防范?
在当今数字化浪潮汹涌的时代,域名系统宛如互联网的基石,稳稳承载着将人们日常使用的便捷域名,精准转换为计算机能够识别与处理的IP地址这一关键任务.其重要性不言而喻,然而,随着DNS在全球范围内的广泛普及 ...
- uniapp阻止Modal模态框关闭
要阻止uniapp的Modal模态框关闭,没有找到相关api,但可以通过保存配置立即打开的方式变相实现阻止关闭: const option = { title: "输入礼品券名称" ...
- 10个 DeepSeek 神级提示词,建议收藏!
在当下人工智能飞速发展的时代,DeepSeek 作为一款功能强大的 AI 工具,能够帮助我们实现各种创意和需求.然而,要充分发挥它的潜力,掌握一些巧妙的提示词至关重要.今天,就为大家精心整理了 15 ...
- Kotlin 实现类似 C# 的 Event 事件代码
在c#中,内置了对事件的设计模式,你可以简单的 += 来订阅一个事件. Kotlin 目前我没有发现内置的支持(如果你发现了,请留言告诉我 tansm),但Kotlin 非常方便的运算符重载,自己实现 ...
- 阿里云Ansible自动化运维平台部署
以下是在阿里云平台上基于Ansible实现自动化运维的完整实践指南,整合所有核心操作流程和命令,适配指定的服务器规划: 一.环境规划 主机名 IP地址 角色 操作系统 manage01 192.168 ...