nginx下的proxy_pass使用
之前的文章说到了,return,rewrite的使用,以及它们的使用场景,今天再来说一种代理的使用,proxy_pass,它属于nginx下的ngx_http_proxy_module模块,没有显示的重定向(看不到30x的重定向),客户端是不知道的,是服务器内部进行转发的
浏览器访问地址:http://m.9000.local/index/get,执行代码如下:
$a = file_get_contents("http://return.local/redirect?a=1&b=2");
$a = Tools::https_request("http://return.local/redirect?a=1&b=2", [
    'aa' => 1,
    'bb' => 2,
    'cc' => 3,
    'dd' => 4
]);//此处使用curl post方式发起请求
echo $a;
return.local的nginx配置如下:
server {
	listen        80;
	server_name  return.local;
	location /redirect {
		proxy_pass http://m.9000.local/index/api;
	}
}
http://m.9000.local/index/api的执行代码如下:
echo '请求方式:'.$_SERVER['REQUEST_METHOD'];
echo '<hr>';
echo 'get请求的参数';
print_r($_GET);
echo '<hr>';
echo 'post请求的参数';
print_r($_POST);
执行结果如下:


结论
1、proxy_pass代理 ,把请求方式,get参数,post参数,到代理到新地址了
2、无论是浏览器请求,postman,或者curl,客户端请求,都能成功
注意
proxy_pass地址有个斜杠(/)的问题要注意下,举例说明
代理地址后面没有路径了,只有域名或者ip+端口(可选)的情况下,会受location中路径部分的影响
server {
	listen        80;
	server_name  return.local;
	location /proxy {
		#代理地址末尾不带斜杠,nginx将会保留location中路径部分
		#如果访问:http://return.local/proxy.html
		#等于访问:http://i.9000.local/proxy.html
		proxy_pass http://i.9000.local;
		#代理地址末尾带斜杠,nginx将使用诸如alias的替换方式对URL进行替换,并且这种替换只是字面上的替换
		#如果访问:http://return.local/proxy.html
		#则 http://return.local/proxy 被替换成 http://i.9000.local/ 然后再加上.html部分,最后访问:http://i.9000.local/.html
		proxy_pass http://i.9000.local/;
	}
}
server {
	listen        80;
	server_name  return.local;
	location /proxy.html {
		#访问http://return.local/redirect.html,实际访问http://m.9000.local/
		proxy_pass http://m.9000.local/;
		#访问http://return.local/redirect.html,实际访问http://m.9000.local/proxy.html
		proxy_pass http://m.9000.local;
	}
}
代理地址后面有自己的路径的情况下,不受location中路径部分的影响
server {
	listen        80;
	server_name  return.local;
	location /redirect.html {
		#访问http://return.local/redirect.html直接代理到另外一个地址
		proxy_pass http://m.9000.local/index/api;
		#如果代理地址后面加了路径,则末尾不管是不是斜杠,都不会受location的路径的替换影响,因此,这2个写法是一样的效果
		proxy_pass http://m.9000.local/index/api/;
	}
}												
											nginx下的proxy_pass使用的更多相关文章
- NGINX中的proxy_pass和rewrite
		
文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6807081.html 转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点,如 ...
 - nginx下配置多个web服务
		
参考 nginx配置详解 nginx反向代理与负载均衡详解 一.nginx简介: Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能 ...
 - nginx下根据指定路由重定向
		
前言: 最近在搭建vue后台,后端接口是PHP写的,线上构建好之后,需要请求其他域名下的接口,开发环境已经使用proxytable解决了接口问题,为了开发和生成的代码一致, 编译后的代码,放在ngin ...
 - 应用八:Vue之在nginx下的部署实践
		
最近有时间研究了下前端项目如何在nginx服务器下进行部署,折腾了两天总算有所收获,汗~~ 所以就想着写篇文章来总结一下,主要包括以下三个方面: 1.打包好的vue项目如何进行部署. 2.如何反向代理 ...
 - 转:NGINX中的proxy_pass和rewrite
		
章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6807081.html 转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点,如有 ...
 - 安全防范:nginx下git引发的隐私泄露问题
		
安全防范:nginx下git引发的隐私泄露问题 1 安全事件 最近阿里云服务器后台管理系统中收到一条安全提示消息,系统配置信息泄露: http://my.domain.com/.git/confi ...
 - 如何在Nginx下配置PHP程序环境
		
1.nginx与PHP的关系 首先来看nginx与php的关系, FastCGI的关系(而不是像apache那样安装成nginx的模块) FastCGI的意思是, 快速的通用网关接口:CGI Comm ...
 - nginx下目录浏览及其验证功能配置记录
		
工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果;而Nginx的目录列表功能默认是关闭的,如果需要打开Nginx的目录列表功能,需要手动配置, ...
 - Nginx下css的链接问题
		
放在 Nginx 下的网页代码,在链接外部 css 文件时,可能出现没有链接成功的问题.需要在 nginx.conf 里的 http 下添加一行. http { include mime.types;
 - Nginx下WordPress的Rewrite
		
最近接触WP Super Cache,该插件要求固定链接必须是重写的,故用到Rewrite. 我的是这样配置的: /usr/local/nginx/conf/rewrite/wordpress.con ...
 
随机推荐
- RabbitMQ保姆级教程最佳实践
			
一.消息队列介绍 1.消息队列概念 1.MQ全称为Message Queue,消息队列(MQ)是⼀种应⽤程序对应⽤程序的通信⽅法. 应⽤程序通过读写出⼊队列的消息(针对应⽤程序的数据)来通信,⽽⽆需专 ...
 - DB2---创建返回结果集的函数
			
在数据验证中,经常遇到需返回结果集的操作,故整理一个返回结果集的DB2函数,便于后期查阅 1.准备测试表 /*创建测试表:设置结果集的属性为表字段*/ CREATE TABLE Test_EXWAST ...
 - 记录一次gcc的编译
			
在deepin23上编译gcc13.2 deepin20素以软件版本过老被人诟病,换成最新的deepin23之后情况大有好转,但是gcc版本为11.2,鄙人对此仍有意见,所以特意研究了如何编译一份较新 ...
 - PHP-basename
			
basename 定义: basename() 函数返回路径中的文件名部分. 语法: basename(path,suffix) 参数 描述 path 必需.规定要检查的路径 suffix 可选.规定 ...
 - DRTREE - Dynamically-Rooted Tree 题解
			
DRTREE - Dynamically-Rooted Tree 本题建议评蓝. 思路: 题目就是要对一颗不定根树求子树权值和. 这题不带修,如果带修难度会增加一点,就跟 遥远的国度 差不多. 首先分 ...
 - python 安装包时 ERROR: Failed building wheel for webrtcvad
			
报错信息: error: subprocess-exited-with-error × Building wheel for webrtcvad (pyproject.toml) did not ru ...
 - http1.x,http2.0,https分别介绍以及他们的区别
			
一.HTTP/1.x Http1.x 缺陷:线程阻塞,在同一时间,同一域名的请求有一定数量限制,超过限制数目的请求会被阻塞 http1.0 缺陷:浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要 ...
 - HTML-8
			
(一)引用数据类型 object function array object JavaScript对象用花括号来书写 对象属性是name:value由逗号分隔 var x={firstname:&qu ...
 - [C++]vector的基本的用法
			
[vector/容器/向量/动态数组]的基本的用法 容器的定义 向量/容器(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container). 跟任意其它类型容器一样,它能够存 ...
 - Util应用框架基础(二) -  对象到对象映射(AutoMapper)
			
本节介绍Util应用框架相似对象之间的转换方法. 文章分为多个小节,如果对设计原理不感兴趣,只需阅读基础用法部分即可. 概述 现代化分层架构,普遍采用了构造块DTO(数据传输对象). DTO是一种参数 ...