nginx的proxy_set_header

nginx的变量很多其中proxy_set_header还是挺有用下面说说具体怎么用:

proxy_set_header主要用在对后全请求定义header上面,向后端的真实的请求头发送请求;

例子:

upstream abc{

server 10.0.0.1:8080

}

upstream efg{

server 10.0.0.2:80;

}

server_name www.abc.com

location ~^/ {

proxy_set_header        Host  $host;

proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass              http://tomcat_mystock;

expires                 0;

rewrite ^/abc/test.jspa?(.*) /def/ghi/hufu.jspa?$1 last;

}

location ~^/def/ghi {

proxy_set_header          Host www.hufu.cn;

proxy_pass              http://efg;

}

这样可以在不做302跳转的情况下实现对www.hufu.cn的请求

效果为:

请求:http://www.abc.com/abc/test.jspa?uid=00001

结果返回实际由http://www.hufu.cn/def/ghi/hufu.jspa?uid=00001 但页面返回200不做跳转

时间: 2024-09-28 12:45:40

nginx的proxy_set_header的相关文章

nginx 反向代理 tomcat (https、虚拟主机)

背景: 有一个JSP开发的网站,需要放在tomcat里面运行,考虑到tomcat处理http请求不是那么强,计划前端添加一个nginx作为反向代理,并且提供https服务,并且通过虚拟主机开代理到指定域名的服务. 我们的域名是www.wzlinux.com. 1.首先是安装nginx和tomcat 2.nginx配置文件如下 包含301调整,以及https证书的设定,我的证书是在阿里云申请的,免费的哦 # # HTTPS server configuration # server {     l

nginx缓存失效--vim选择后u将所有大小转换为了小写

 vim处理字符的大小写转换  ~          将光标下的字母改变大小写 3~         将光标位置开始的3个字母改变其大小写 g~~        改变当前行字母的大小写 U          将可视模式下选择的字母全改成大写字母 u          将可视模式下选择的字母全改成小写 gUU        将当前行的字母改成大写 guu        将当前行的字母全改成小写 3gUU      将从光标开始到下面3行字母改成大写 gUw       将光标下的单词改成大写. g

如何将https服务所在主机进行nginx配置,完成路由

如何将https服务所在主机进行nginx配置,完成路由.如以我自己曾今的部署环境为例. 第一步:将安全证书上传至nginx服务器.如当前路径下/app/opt/nginx/cert/; 第二步:nginx配置文件进行配置,添加以下模块 upstream https_sso { server   171.96.188.162:6078;//sso服务对应的主机和端口号 } # HTTPS server # server { listen       9061 ssl;  //9091为访问ngi

前端nginx代理服务器,后端tomcat记录真实IP

nginx+tomcat这种架构,如果后端tomcat配置保持默认,那么tomcat的访问日志里,记录的就是前端nginx的IP地址,而不是真实的访问IP.业务需求,需要对nginx.tomcat做如下配置: 1)nginx配置 ...... proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_fo

[Redmine] Centos5上安装Redmine3.0+nginx+thin部署

项目管理的需要所以安装Redmine,其实wiki放在上面也不错的. 首先是安装,ruby应用第一次装,把坑记住. nginx, mysql是已经安装好的,只需要配置, 结合nginx的部署方式很多,我这里就选择一种,因为ruby没接触过,只是应用能跑通就好. 基础环境 centos5.1 ruby on rails 4.2 ruby 2.0.0 2.1 2.2 1.9.3 mysql5.0 + redmine 3.0.4 首先是版本对照 请参见 installation guide 下面都是r

nginx泛解析域名实现多级域名多个域名跳转

需求如下: 由于之前泛解析有上百个域名需要向上图所示的这种需求,所以需要一个通用方法进行处理.思路如下: 1,首先通过Nginx获取到所有泛解析的二级子域名 2,通过Nginx的 proxy_set_header 自定义变量获取请求url主机头部 3,后端使用程序获取Nginx传递过来的url主机头,进行跳转至www.csdn.net/topics*.html 操作如下: * 泛解析在DNS中解析到Nginx服务器 添加Nginx配置文件 upstream x { server 10.0.0.x

如何使用Nginx和uWSGI或Gunicorn在Ubuntu上部署Flask Web应用

我在很多的博客中都看过有关Flask应用的部署,也有很多博主在开博后都记录了部署的教程,因为其中的坑可以说不少.一开始我在网上看到相比较与Ubuntu,CentOS因为更新少作为服务器的操作系统会更加稳定.所以在第一次购买云服务器时,我选择了CentOS,后来由于CentOS不同发行版的Nginx缘故,我又换成了Ubuntu的镜像 首先呢,我们先来了解下关于Web服务器与Web应用还有WSGI之间的联系 一.介绍 WSGI(Web Server Gateway Interface),翻译为Pyt

haproxy nginx X-Forwarded-For的值

client(web 浏览器) ----> haproxy(acl backend)----> nginx (proxy_pass)----> java程序地址如下:1.1.1.1 2.2.2.2 3.3.3.3 默认正常的java程序看到的 X-Forwarded-For 为 1.1.1.1,2.2.2.2, 3.3.3.3 haproxy日志中看到的是 1.1.1.1nginx日志中看到的是 1.1.1.1,2.2.2.2 如有一段nginx中的正常的生产日志:"111.1

Linux nginx

Nginx反向代理:      1) nginx提供静态资源服务 nginx的一大经典使用场景就是提供静态资源服务,假设/var/www/html是静态资源所在的文件夹,那么可以通过修改配置文件来通过nginx处理这些静态资源. 在 /etc/nginx/conf.d/default.conf中增加代码 Test.php <img src='asset/1.png'> location /asset { root /var/www/html;        可以把路径写在其他服务器上 inde