跳至主要内容

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/555
location匹配到 /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

评论

此博客中的热门博文

马来西亚 VPS 服务器便宜推荐

 供应商 LightNode   LightNode成立于2002年,目前拥有员工500余人。 LightNode自主研发并提供计算、存储、网络和安全等企业必需的基础IT架构资源。依托于自主知识产权的管理平台,为客户提供混合云计算服务和云上运维管理服务。 LightNode崇尚“技术驱动产品,运维驱动服务”的理念,不断推出适合行业特性的产品和服务。 目前,LightNode已为大量游戏、电商、金融、泛娱乐、企事业等方向的IT部署服务,提供了解决方案与混合云服务。   优势介绍资源 全球节点 包含20多个全球节点,其中东南亚及中东地区超过15个节点   一键部署 一键安装部署,可自由选择系统、应用镜像或已有的自定义镜像创建主机   计费粒度小 所有的产品及服务都是按照小时收费   完全资源控制 实例权限全放开,端口仅限制25端口       马来西亚VPS服务器便宜推荐 服务器实例可以随时 新建 和 注销 , 费用按小时结算 ,避免费用浪费。 服务器费用低廉,低至 $ 7.71 / 月 ( 约 50元/月 )。 服务器资源可以根据需求自定义配置,自选系统,支持 Windows 和 Linux。 服务器网络可以根据实际选择按 流量(1000GB) 和 带宽 服务器 IP 可以在线免费修改二次,当然你也可以重新开启新的实例来达到更新 IP 的操作。 服务器网络主要为 国际路线 ,对国内访问速度不太用好,可以通过其它快速的服务器进行中转。   多地区选择,遍布全世界 推荐 通过推荐推荐地址注册会有 95 优惠  LightNode: https://www.lightnode.com/ 推荐地址: https://www.lightnode.com/?inviteCode=JJI33F&promoteWay=LINK        

菲律宾 VPS 服务器,月均只要16.5元/月,优惠推荐

  原文: https://ichochy.com/posts/vps/20240105.html Megalayer 致力于成为全球电信增值服务提供商,为用户在全球范围内提供优质、稳定的互联网服务,目前已经在 香港、日本、美国 等地区部署节点,并且将继续在东南亚地区进行战略布局,提升资源优势以及市场优势。 资费 月资费 年资费,最低16.5元/月 服务器特点和优势 服务器可以月付,低至 24元/月 。 服务器可以年付 199元/年 ,低至 16。5元/月 。 服务器有香港 CN2 优化线路,低延迟,国内访问首选。 服务器还支持多种优化线路, 极低延迟 访问,没有丢包问题。 服务器系统可以选择  Windows  和  Linux  ,可以自定义硬件配置和网络带宽。 服务器支持 支付宝 等其它多种方式购买。 服务器网络测速 优化带宽: 154.55.128.254 全向带宽: 154.39.240.254 国际带宽: 154.39.247.254 服务器推荐 在线推荐有优惠哦 Megalayer 服务商: https://www.megalayer.net/ 推荐地址: https://account.megalayer.net/aff.php?aff=1678  2024 VPS 优惠码: VPS2024-50%OFF 注:注册登录后可以看到特价VPS   相关文章 香港CN2优化线路带宽低延迟VPS服务器推荐  2023/11/20 菲律宾VPS服务器便宜推荐  2023/10/22 Mac launchctl 自定义服务启动  2023/11/28 Mac 终端设置代理,设置一键开启和取消  2023/11/25 第一次通过 SSH key 免密连接 GitHub 的完整过程  2022/11/07