首页 > 系统相关 >nginx反向代理时报no resolver defined to resolve

nginx反向代理时报no resolver defined to resolve

时间:2024-01-19 21:15:47浏览次数:25  
标签:www resolve no defined server 域名 resolver upstream test

错误日志

2024/01/11 05:29:22 [error] 29#29: *44 no resolver defined to resolve www.test.com, client: 127.0.0.1, server: _, request: "GET /test/123 HTTP/1.1", host: "127.0.0.1:8080"

nginx配置

server {
listen    8080;
server_name  _;

location ~ ^/test/(.*)$ {
    proxy_set_header Host www.test.com;
    proxy_pass https://www.test.com/$1;
}

网上搜索说是要手动指定resolver 8.8.8.8,但是此配置是放在docker镜像中的,有些业务地址需要走自己的dns解析,肯定不能写死。于是又去查找能不能让resolver自动读取/etc/resolv.conf,发现需要加脚本。所以我在想,这么基础的功能需要配置的这么麻烦吗?

好像以前也是直接写域名就可以用的。等等,好像不太一样,这次域名后面加了$1
这种模式下是不是也可以把$1加到域名里呢?此时的域名变成了变量域名,性质发生了变化。
所以这里虽然写的是静态域名,而nginx已经一刀切的认为是变量域名了,从而需要手动指定resolver才能工作。

那得想办法让nginx认为我这个域名不会发生变化,我想到了upstream

upstream baidu {
  server www.test.com:443;
}

server {
listen    8080;
server_name  _;

location ~ ^/test/(.*)$ {
    proxy_set_header Host www.test.com;
    proxy_pass https://test/$1;
}

结果测试成功。

小插曲:

2024/01/11 05:54:37 [error] 454#454: *790 SSL_do_handshake() failed (SSL: error:1408F10B:SSL routines:ssl3_get_record:wrong version number) while SSL handshaking to upstream, client: 127.0.0.1, server: _, request: "GET /test/123 HTTP/1.1", upstream: "https://193.169.203.141:80/123", host: "127.0.0.1:8080"

发现proxy_pass在以https方式访问80口,是因为upstream默认使用80端口,手动指定即可

upstream test {
  server www.test.com:443;
}

标签:www,resolve,no,defined,server,域名,resolver,upstream,test
From: https://www.cnblogs.com/shn7798/p/17975599/nginx-fan-xiang-dai-li-shi-baono-resolver-defin

相关文章

  • AGC019F Yes or No
    洛谷AT思路先思考最优策略是什么,如果你想尽可能多的对,那么一定是答当前剩的数目最多的答案。比如当前还有\(x\)道\(\text{YES}\),\(y\)道\(\text{NO}\),在\(x>y\)时一定答\(\text{YES}\),\(x<y\)时一定答\(\text{NO}\),\(x=y\)时两者皆可,不妨设他都选\(\text{YES}\)。......
  • nginx反向代理时报no resolver defined to resolve
    错误日志2024/01/1105:29:22[error]29#29:*44noresolverdefinedtoresolvewww.test.com,client:127.0.0.1,server:_,request:"GET/test/123HTTP/1.1",host:"127.0.0.1:8080"nginx配置server{listen8080;server_name_;locatio......
  • 洛谷 P9869 [NOIP2023] 三值逻辑 题解
    Solution模拟程序,容易发现每个点最后的取值都是定值或一个点的初始值(可能是该值取反)。最后是定值的点可以确定初始值,最后取值由该点决定的点也可以确定取值。求出这些取值,答案加上取之为U的点的个数。即第\(i\)个点最后的取值是\(to_i\)的初始值,\(sg_i\)表示是否取反,那......
  • 使用pnpm来管理vue项目的node_modules
    要使用pnpm,先确保nodejs版本在16以上(目前用的18.16.1)(确保本地已经全局安装了pnpm如果没有安装就使用npmi-gpnpm来全局安装)一.老项目从npm迁移到pnpm  先删掉项目中的node_modules文件夹和package-lock.json文件   在终端运行pnpmi 安装成功后根目录下会多一......
  • /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found问题解决
    有一个go实现的项目代码最近有更新,自己在开发环境上手动构建并运行都没有问题(构建和运行时相同环境,肯定没有问题^_^)。后面通过jenkins构建镜像也没有问题,运行时却报错 之前的版本在jenkins上构建也是成功的,后沟通得知jenkins集群版本最近有更新 那么,大概知道原因了,由于jenk......
  • Nessus 10.6 Auto Installer for macOS Sonoma (updated Jan 2024)
    Nessus10.6AutoInstallerformacOSSonoma(updatedJan2024)发布Nessus试用版自动化安装程序,支持macOSSonoma、RHEL9和Ubuntu22.04请访问原文链接:https://sysin.org/blog/nessus-auto-install-for-macos/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • 详解Process object has no attribute '_popen'
    详解Processobjecthasnoattribute'_popen'最近在使用Python的multiprocessing模块进行多进程编程时,遇到了一个奇怪的错误:Processobjecthasnoattribute'_popen'。这个错误消息看起来很奇怪,让人摸不着头脑。错误背景在使用multiprocessing模块创建子进程时,通常会创建一个Pr......
  • 洛谷题单指南-模拟和高精度-P1098 [NOIP2007 提高组] 字符串的展开
    原题链接:https://www.luogu.com.cn/problem/P1098题意解读:题目本身是一道模拟题,但是细节点较多,要拿100分,有以下注意点:1、-号两个需要同时为小写字母或者数字,才进行填充2、-号左边>=右边,直接输出-3、对待填充的内容的处理,可以先看是否填充*;小写字母和数字的填充都是前一位asci......
  • NOIP2023题解
    目录NOIP2023T1词典(dict)T2三值逻辑(tribool)T3双序列拓展(expand)T4天天爱打卡(run)NOIP2023T1词典(dict)考察:贪心题解Link题目传送门首先任意多次操作本质就是随意排序,所以如果要使\(w_i\)最小,我们一定会使\(w_i\)从\(a\)到\(z\)排,其它都\(z\)到\(a\)排......
  • ChartGPT以流返回结果node怎么实现
    ChartGPT以流返回结果node怎么实现1.ChartGPT以流返回结果node怎么实现?2.我们前端应该怎么处理接收返回结果?3.怎样实现打字机式将结果回显在我们页面上?❓:1.ChartGPT以流返回结果node怎么实现?......