Nginx proxy_redirect 作用

简介: 今天在做nginx反向代理apache的时候出了一点点问题,原来后端apache用的端口是8080通过反向代理后,使用wireshark抓包发现location头域数值为http://192.

今天在做nginx反向代理apache的时候出了一点点问题,原来后端apache用的端口是8080通过反向代理后,使用wireshark抓包发现location头域数值为http://192.168.1.154:8080/wuman/ 如果把这个返回给客户端肯定是不可以的,看起来别扭而且还暴露了apache的具体信息

     所以在这里用到了nginx的proxy_redirect指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值

以下是截取nginx的一小段配置文档

server {
listen 80;
server_name www.boke.com;
location / {
proxy_pass http://192.168.1.154:8080;
proxy_redirect off;
}
}

此时我们通过curl查看结果得出

[root@localhost nginx]# curl -I Server: nginx
Date: Thu, 24 Dec 2015 12:02:00 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: http://192.168.1.154:8080/wuman/

这里location为带有后端服务器实际地址跟端口的响应头信息这样在实际线上是不允许的所以这里我们打算通过proxy_redirect将被代理服务器的响应头中的location字段进行修改后返回给客户端

server {
listen 80;
server_name www.boke.com;
location / {
proxy_pass http://192.168.1.154:8080;
proxy_redirect }

server {
listen 80;
server_name www.boke.com;
location / {
proxy_pass http://192.168.1.154:8080;
proxy_redirect ~^http://192.168.1.154:8080(.*) http://www.boke.com$1;
}

则curl查看返回结果

[root@localhost nginx]# curl -I Server: nginx
Date: Thu, 24 Dec 2015 12:08:34 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: 此时查看location已经变成了我们想要的结果了。 此时通过replacement 301重定向到了我们新的页面

出处:
proxy_redirect
语法:proxy_redirect [ default|off|redirect replacement ]
默认值:proxy_redirect default
使用字段:http, server, location
如果需要修改从被代理服务器传来的应答头中的"Location"和"Refresh"字段,可以用这个指令设置。
假设被代理服务器返回Location字段为: http://localhost:8000/two/some/uri/
这个指令:
proxy_redirect http://localhost:8000/two/ http://frontend/one/;
将Location字段重写为http://frontend/one/some/uri/
在代替的字段中可以不写服务器名:

proxy_redirect http://localhost:8000/two/ /;
这样就使用服务器的基本名称和端口,即使它来自非80端口。
如果使用“default”参数,将根据location和proxy_pass参数的设置来决定。
例如下列两个配置等效:

location /one/ { proxy_pass http://upstream:port/two/; proxy_redirect default;} location /one/ { proxy_pass http://upstream:port/two/; proxy_redirect http://upstream:port/two/ /one/;}
在指令中可以使用一些变量:

proxy_redirect http://localhost:8000/ http://host:server_port/;
这个指令有时可以重复:

proxy_redirect default; proxy_redirect http://localhost:8000/ /; proxy_redirect ; /;
参数off将在这个字段中禁止所有的proxy_redirect指令:

proxy_redirect off; proxy_redirect default; proxy_redirect http://localhost:8000/ /; proxy_redirect ; /;
利用这个指令可以为被代理服务器发出的相对重定向增加主机名:


作者:Sun-shell
来源:CSDN
原文:https://blog.csdn.net/u010391029/article/details/50395680?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

目录
相关文章
|
应用服务中间件 nginx
Nginx的启动、停止与重启
启动  启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.
14792 0
|
网络协议 ice
STUN, TURN, ICE介绍
STUN STUN协议为终端提供一种方式能够获知自己经过NAT映射后的地址,从而替代位于应用层中的私网地址,达到NAT穿透的目的。STUN协议是典型的Client-Server协议,各种具体应用通过嵌入STUN客户端与STUN Server端通讯来完成交互。
16057 1
|
SQL 安全 数据挖掘
Acunetix 12-Web漏洞扫描初体验
Acunetix 12-Web漏洞扫描初体验
Acunetix 12-Web漏洞扫描初体验
|
人工智能 JavaScript 前端开发
领导给我3天时间汇总所有AI模块词条,结合DeepSeek,20分钟就搞定了。
本文分享了一次利用AI工具提升工作效率的实际案例。作者接到任务,需在3天内梳理公司AI模块的所有词条并以增量形式提供给项目组。为高效完成任务,作者借助DeepSeek编写了三个Node.js脚本:第一个脚本扫描所有/ai目录下的文件,提取符合“zxy.xxx”格式的词条;第二个脚本对比目标词条库与已提取的词条,生成过滤后的副本;第三个脚本将最终结果输出为Excel文档,满足领导需求。整个过程从十几分钟到二十分钟不等,大幅缩短了原本需要数天的工作量。此案例表明,在重复性工作中合理运用AI工具可显著提高效率。
476 12
|
10月前
|
网络协议 API 网络安全
永久独立IP服务器解析与选择指南
关于“永久独立IP服务器”,这个概念需要从技术和商业两个层面来理解,小编为您整理发布。
|
存储 运维 数据处理
数据中心有哪些等级规范?
数据中心是现代信息社会的基石,支撑着海量数据的存储、处理与交换。其稳定性对互联网企业、金融机构和政府部门至关重要。依据场地设施、电力供应、网络架构等多维度因素,数据中心被划分为不同等级,如TIA-942标准中的Tier I至Tier IV。各等级从基础配置到高可靠性设计逐步提升,满足不同业务需求。TIA-942标准为全球数据中心建设提供了统一规范,推动了行业的标准化发展。
1205 1
|
Linux 数据安全/隐私保护
如何在 Fedora 38 中为用户添加、删除和授予 Sudo 权限?
如何在 Fedora 38 中为用户添加、删除和授予 Sudo 权限?
995 0
如何在 Fedora 38 中为用户添加、删除和授予 Sudo 权限?
|
自然语言处理 算法 机器人
2025年热门智能客服机器人评测:哪款更好用?
2025年,智能客服机器人市场竞争激烈,功能日益强大。主要品牌如合力亿捷、阿里云、华为云、京东京小智和小米商城等纷纷推出具备精准语音识别、语义理解、多渠道接入等功能的产品,广泛应用于电商、金融、零售等领域,显著提升客服效率与客户满意度,降低企业运营成本。
1315 0
|
弹性计算 数据库
阿里云服务器流量怎么计算的?公网内网出入流量都收费吗?
阿里云服务器内网流量免费,公网入方向流量免费,只有云服务器公网出方向产生的流量才收费
8810 0
阿里云服务器流量怎么计算的?公网内网出入流量都收费吗?
|
机器学习/深度学习 PyTorch 程序员
FastAI 之书(面向程序员的 FastAI)(一)(1)
FastAI 之书(面向程序员的 FastAI)(一)(1)
408 0