首页 > 系统相关 >nginx 反向代理注意

nginx 反向代理注意

时间:2024-03-18 12:11:06浏览次数:26  
标签:set http header work 代理 nginx 反向 proxy pass

1. Nginx中正则捕获组在proxy_pass中不可用

有一个需求, 根据不同的路径代理到后端

问题出在 $1 这个正则捕获组上。在 Nginx 中,正则表达式中的捕获组是根据 () 定义的,但这个捕获组只在 location 内部有效,并且不会传递到 proxy_pass 中。

所以当你在 proxy_pass 中使用 $1 时,它实际上是一个空值,因为它不是从 location 中传递过来的。这导致了404错误,因为代理请求时的URL可能不是你期望的。

为了解决这个问题,你可以使用 rewrite 指令来重写 URI,然后再将请求代理到后端服务器。你的配置可以改为以下形式:
# 作业服务 - 正式预发  (正确写法)
location ~* /next/api/(work|exam) {
    rewrite ^/next/api/(work|exam)(.*)$ /$1$2 break;
    proxy_pass http://work.release.test.org:81 ;
    
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_set_header X-Forwarded-Proto $scheme;
}

### 错误写法
# 作业服务 - 正式预发
location ~* /next/api/(work|exam) {
	# 这会导致 nginx 直接返回 404 错误 ---
    proxy_pass http://work.release.test.org:81/$1 ;
    
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_set_header X-Forwarded-Proto $scheme;
}

标签:set,http,header,work,代理,nginx,反向,proxy,pass
From: https://www.cnblogs.com/whm-blog/p/18080080

相关文章

  • Nginx服务启动失败
    问题描述:Nginx服务启动失败解决方案:查看是否有如下服务起来,有需要停止服务并改为手动SQLServer导致。其中很有可能是SQLServerReportingServices(MSSQLSERVER),它是SQLServer的日志系统。IIS服务。如果你电脑安装了这个,很有可能它在运行着,那么它就占用着80端口Worl......
  • nginx
    .配置文件路径:Nginx的配置文件通常位于/etc/nginx目录下。主要的配置文件是nginx.conf。2.静态文件配置:在nginx.conf文件中,可以通过server块来配置静态文件的访问。例如,可以添加以下配置来指定静态文件的根目录和访问路径server{listen80;server_nameexample.com;locati......
  • 如何查找访问 Nginx 的前 10 个 IP?
    在管理和维护Web服务器时,了解谁正在访问您的网站是非常重要的。Nginx是一个流行的Web服务器,通过分析其访问日志,您可以了解访问者的来源、频率以及他们的行为。有时候,您可能希望查找访问量最高的IP地址,以便进一步分析或采取措施,比如加强安全性或优化性能。本文将详细......
  • Navigation System(djkstra,反向建图,思维)
    ThemapofBertowncanberepresentedasasetof nn intersections,numberedfrom 11 to nn andconnectedby mm one-wayroads.Itispossibletomovealongtheroadsfromanyintersectiontoanyotherintersection.Thelengthofsomepathfromonei......
  • 深度学习入门基于python的理论与实现-第五章误差反向传播法(个人向笔记)
    目录计算图链式法则反向传播加法结点的反向传播乘法结点的反向传播计算图计算图是一种图形化表示计算过程的方法,通常用于机器学习和深度学习中。在计算图中,节点代表操作(例如加法、乘法等),边代表数据流动(即操作的输入和输出)。通过计算图,可以清晰地展示计算过程中各个操作之间的依......
  • nginx基础篇
    web服务器介绍Unix和Linux平台下的常用Web服务器常见有:ApacheNginxLighttpdTomcatIBMWebSphere其中最为广泛的是Nginx,在Windows平台上最常用的是微软的IIS(InternetInformationServer,互联网信息服务)是Windows系统中默认的Web服务程序。nginx介绍nginx是什么1.......
  • 动态代理和反射的基本学习
    今天在跟着视频学习的时候发现老师讲的知识点都只简单的了解过但是没有深入学习,导致在跟着视频敲代码的时候完全不知道自己是在写什么东西。所以决定先把基础补一补再继续跟老师做项目。打算先把自定义注解的编写和解析学好,想要学号这一块,又涉及到了Aop和java中反射的学习,那么话......
  • Ubuntu,centos安装nginx
    安装包:https://pan.baidu.com/s/1kVCEBcVnginx需要依赖openssl,pcre,zlib包,加上nginx包一共4个包,放在同一目录,依次执行命令:tarxzfnginx-1.12.2.tar.gztarxzfopenssl-fips-2.0.9.tar.gztarxzfpcre-8.41.tar.gztarxzfzlib-1.2.11.tar.gzcdopenssl-fips-2.0.9/./config......
  • Nginx的安装和使用
    Nginx的安装和使用Nginx主要功能:反向代理、负载均衡、动静分离使用docker-compose安装cd/opt/docker_composemkdirdocker_nginxcddocker_nginxtouchdocker-compose.yml编写docker-compose.yml后保存version:'3.1'services:nginx:restart:always......
  • Nginx部署vue项目刷新返回空白页问题
    这个问题很有可能是因为VueRouter的模式和Nginx配置之间的冲突导致的。当你在Vue应用中使用VueRouter的`history`模式时,URL会变成美观的形式,就像`http://mywebsite/myroute`,而不是`http://mywebsite/#/myroute`。这种模式下,当你尝试通过直接访问`http://mywebsite......