之前的文章说到了,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使用的更多相关文章

  1. NGINX中的proxy_pass和rewrite

    文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6807081.html 转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点,如 ...

  2. nginx下配置多个web服务

    参考 nginx配置详解  nginx反向代理与负载均衡详解 一.nginx简介: Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能 ...

  3. nginx下根据指定路由重定向

    前言: 最近在搭建vue后台,后端接口是PHP写的,线上构建好之后,需要请求其他域名下的接口,开发环境已经使用proxytable解决了接口问题,为了开发和生成的代码一致, 编译后的代码,放在ngin ...

  4. 应用八:Vue之在nginx下的部署实践

    最近有时间研究了下前端项目如何在nginx服务器下进行部署,折腾了两天总算有所收获,汗~~ 所以就想着写篇文章来总结一下,主要包括以下三个方面: 1.打包好的vue项目如何进行部署. 2.如何反向代理 ...

  5. 转:NGINX中的proxy_pass和rewrite

    章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6807081.html 转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点,如有 ...

  6. 安全防范:nginx下git引发的隐私泄露问题

    安全防范:nginx下git引发的隐私泄露问题 1   安全事件 最近阿里云服务器后台管理系统中收到一条安全提示消息,系统配置信息泄露: http://my.domain.com/.git/confi ...

  7. 如何在Nginx下配置PHP程序环境

    1.nginx与PHP的关系 首先来看nginx与php的关系, FastCGI的关系(而不是像apache那样安装成nginx的模块) FastCGI的意思是, 快速的通用网关接口:CGI Comm ...

  8. nginx下目录浏览及其验证功能配置记录

    工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果;而Nginx的目录列表功能默认是关闭的,如果需要打开Nginx的目录列表功能,需要手动配置, ...

  9. Nginx下css的链接问题

    放在 Nginx 下的网页代码,在链接外部 css 文件时,可能出现没有链接成功的问题.需要在 nginx.conf 里的 http 下添加一行. http { include mime.types;

  10. Nginx下WordPress的Rewrite

    最近接触WP Super Cache,该插件要求固定链接必须是重写的,故用到Rewrite. 我的是这样配置的: /usr/local/nginx/conf/rewrite/wordpress.con ...

随机推荐

  1. 如何使用Grid中的repeat函数

    在本文中,我们将探索 CSS Grid repeat() 函数的所有可能性,它允许我们高效地创建 Grid 列和行的模式,甚至无需媒体查询就可以创建响应式布局. 不要重复自己 通过 grid-temp ...

  2. 发现了一个可以免费下载jar包的网站,所有jar包都有

    苦苦找不到项目所需要的jar包?发现了一个可以免费下载jar包的网站: https://jar-download.com/ 非常好用. 每个JAR文件都将从官方Maven存储库下载.通过下载所有Mav ...

  3. OA管理系统源码

    介绍 oa管理系统,只有基本功能,可进行二次开发 软件架构 技术框架:Spring+SpringMVC+Mybatis+BootStrap 数据库:MySQL 服务器:JDK7+Tomcat7 安装教 ...

  4. vue3探索——pinia高阶使用

    以下是一些 Pinia 的其他高阶功能: storeToRefs():响应式解构仓库,保证解构出来的数据是响应式的数据. 状态持久化:Pinia 并没有内置的状态持久化功能,但你可以使用第三方库或自定 ...

  5. 浅入深出的微前端MicroApp

    前言: 本文是由最近做的一个项目有感而发,因为之前做了一些技术栈的统一,为了用ant Design的pro-table,PC统一使用react,但是我们有一些老的项目是vue的,本次新页面较多,老页面 ...

  6. oracle-组合索引字段位置与查询效率之间的关系

    Oracle索引组合字段的位置不同,当查询条件不能覆盖索引时,影响查询效率.查询条件是不是索引字段的第一列影响执行计划,实验验证 实验1:查询条件为组合索引的第一列--创建测试表 create tab ...

  7. bash解释器特性、目录结构、命令种类及优先级、常用命令

    bash解释器的交互式环境特性 命令和文件自动补全 注意:Tab只能补全命令和文件及其文件路径 [root@localhost ~]# ls /etc/sysconfig/network-script ...

  8. CF1878 A-G 题解

    前言 赛时代码可能比较难看. 为什么 Div3 会出 4 道数据结构. A 判定 \(a\) 中是否有 \(k\) 即可. 赛时代码 B 奇怪的构造题. 令 \(a_1=1,a_2=3\),其他项由上 ...

  9. Go命令大全:全面解析与实践

    本文详尽地探讨了Go语言的内建命令集,包括但不限于go build.go run.go get等.文章首先列举了所有常用的Go命令,并用表格形式简洁地解释了它们的功能.随后,我们逐一深入讲解了每个命令 ...

  10. Lora升级!ReLoRa!最新论文 High-Rank Training Through Low-Rank Updates

    关注公众号TechLead,分享AI与云服务技术的全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专 ...