`
ldd600
  • 浏览: 103574 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
47bb354f-8b5f-3ea6-a206-c7ead38c741c
Hyperic插件开发不完...
浏览量:11255
社区版块
存档分类
最新评论

nginx反向代理后getRequestURL出现的问题

阅读更多

nginx:在nginx作了反向代理将pay.xxx.com映射到了hostname:80/pay

 

  location ^~ / {
          proxy_pass http://hostname:80/pay/;
        } 

 

 

tomcat: 在tomcat中获取requestURL打出来的是http://pay.xxx.com/pay/a/b.html, 多了一个pay,tomcat里面应该是自己拼装了requestURI。这样的requestURL重定向后,再经过nginx访问就会是http://pay.xxx.com/pay/pay/a/b.html。紧接着就是404.

 

解决方法1:

 

 location ^~ /pay/ {
         proxy_pass http://hostname:80/pay/;
        }

 把/pay也做了一次映射。这样做的目的是把错误的URL "http://pay.xxx.com/pay/a/b.html",映射到了http://hostname:80/pay/。

 

简单,但有点trick,并且一个资源会有两个地址。

 

解决方法2:

nginx添加一个header。

 

proxy_set_header request_uri $request_ur;

 在fitler中拿出request_uri这个header,取出的是/a/b.html, 用它拼装出redirect的URL,注意要支持HTTP和HTTPS两种协议。

 

解决方法3

把项目都放到根目录下。通过http://hostname:80直接访问。

 

不知道大家是否有更好的解决方法。

分享到:
评论
1 楼 lsjbruce 2012-04-23  
我也碰到这个问题了,试了第二种方法好像不行哟

相关推荐

    Cobalt_Strike_C2隐匿多级nginx反向代理1

    1. 在第一层 Nginx 反向代理节点(例如:21.67.38.47)上配置 Nginx,设置监听 80 端口,并将所有流入的 80 端口流量转发到第二层 Nginx 反向代理的域名(如 host.second.com:80)。 ``` upstream default_pools...

    nginx反向代理导致session失效的问题解决

    两边通过同一个nginx进行反向代理,nginx配置大致如下, location /health/ { proxy_pass http://192.168.40.159:8081/health/; #无问题的配置 } location /health-dev/ { proxy_pass ...

    Nginx反向代理不能访问项目的解决办法

    ### Nginx反向代理不能访问项目的解决办法 ...通过这些步骤,可以逐步定位并解决通过Nginx反向代理访问不到部署在Tomcat上项目的常见问题。在实际操作过程中,可能还需要根据具体情况调整配置或排查其他潜在问题。

    Nginx 反向代理解决JS跨域

    通过使用Nginx 反向代理来解决JS跨域问题 http://blog.csdn.net/mzhaocai/article/details/79238338

    Nginx反向代理服务器配置基础教程

    ### Nginx反向代理服务器配置基础教程 #### 一、系统架构 在现代Web服务部署中,Nginx作为一款高性能的HTTP和反向代理Web服务器,被广泛应用于负载均衡、反向代理以及静态资源服务等多个场景。本文将详细介绍如何...

    42 2 Nginx反向代理视频

    教程视频:Nginx反向代理web服务器,后台java控制连接访问。

    nginx多网站反向代理

    nginx多网站反向代理

    nginx反向代理配置

    nginx反向代理配置 动静分离不错的代理

    Web APP 如何实现类似Nginx反向代理转发功能-zhangyannan1

    Web APP 实现类似 Nginx 反向代理转发功能 Web APP 如何实现类似 Nginx 反向代理转发功能是指在 Web 应用程序中实现反向代理转发的功能,以便将用户的请求转发到其他服务器或应用程序上。反向代理转发是一种常用的...

    windows下配置nginx反向代理tomcat

    - 如果出现问题,可以检查 Nginx 的错误日志,通常位于 `C:\nginx\logs\error.log`。 通过以上步骤,你可以在 Windows 系统上成功配置 Nginx 作为 Tomcat 的反向代理,并实现基本的功能需求。此外,还可以根据具体...

    https通信nginx反向代理443端口

    在IT行业中,HTTPS通信是确保网站数据安全传输的重要手段,而Nginx作为一款高性能的HTTP和反向代理服务器,常被用来实现这种安全通信。本文将深入探讨如何通过Nginx配置HTTPS服务器,实现443端口的反向代理,以及与...

    docker 安装 wordpress,通过nginx反向代理,绑定域名,配置https

    我们需要配置 Nginx 反向代理,以便访问 WordPress 站点。我们可以在 nginx.conf 文件中添加以下配置: ``` server { listen 80; server_name ikeguang.com; location / { proxy_pass http://localhost:8080; ...

    nginx反向代理、均衡负载、缓存静态资源、URL重定向、读写分离.zip

    nginx反向代理、负载均衡、缓存静态资源、URL重定向、读写分离.zip

    一分钟搞定 Nginx反向代理 nginx域名代理

    3.找到D:\nginx\conf下nginx.conf文件用记事本打开 在文段末尾大括号前加上 include proxy.conf;(就是加载刚刚新建的那个文件(注意路径)) 4.进入cmd 进入D盘: d: 进到nginx文件夹下:cd nginx 启动nginx.exe:...

    nginx反向代理配置文件示例,支持非80端口映射

    网上找到的nginx反向代理配置文件通常只能通过80端口进行访问,映射到其他端口时系统可能获取不到,经过找资料以及试验,找到了能够解决的配置方法。

    nginx 反向代理.docx

    ### Nginx 反向代理知识点详解 #### 一、代理概述 代理是一种常见的网络通信方式,它在客户端与服务器之间架设了一座桥梁。在实际应用中,代理分为正向代理和反向代理两种类型。 **代理的概念:** 在Java设计模式...

    利用Nginx反向代理解决跨域问题详解

    问题 在之前的分享的跨域资源共享的文章中,有提到... 基于与合作方后台的配合,利用nginx方向代理来满足浏览器的同源策略来实现跨域 实现方法 反向代理概念 反向代理(Reverse Proxy)方式是指以代理服务器来接受In

    nginx反向代理服务

    【Nginx反向代理服务】是网络服务器配置中的一个重要概念,主要应用于负载均衡和安全性增强。Nginx是一款高性能的HTTP和反向代理服务器,以其高效、稳定和低内存占用而闻名。在Linux系统中部署Nginx,可以极大地提升...

    Nginx服务器作反向代理实现内部局域网的url转发配置

    然后k兄就提议可以在内网搭建个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到nginx反向代理服务器,利用nginx反向代理将不同域名的请求转发给...

    Nginx反向代理和proxy

    此文比较详细讲述了Nginx与proxy共同搭建反向代理服务的配置方法

Global site tag (gtag.js) - Google Analytics