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 ...
随机推荐
- 我的 Kafka 旅程 - 基于账号密码的 SASL+PLAIN 认证授权 · 配置 · 创建账号 · 用户授权 · .NET接入
本文基于 Kafka 3.0+ 的 KRaft 模式来阐述 默认的 Kafka 不受认证约束,可不用账号就可以连接到服务,也就是默认的 PLAIN 方式,不需要认证:配置了 SASL 认证之后,连接K ...
- Linux下导入MySQL数据库
导入数据库1.首先建空数据库mysql>create database abc; 2.导入数据库方法一:(1)选择数据库mysql>use abc;(2)设置数据库编码mysql>s ...
- PHP上传文件$_FILES, $_POST为空 empty 时, 文件上传大小限制
原因 今天在使用ci upload库时, 上传mp4发现表单为空, 上传png等类型却可以正常. 折腾一番后才恍然, PHP上传大小限制的问题. Make一下. 真是失策啊, 一开始我还不相信到处瞎折 ...
- Go学习笔记3
九.错误处理 1.defer+recover机制处理异常错误 展示错误: 发现:程序中出现错误/恐慌以后,程序被中断,无法继续执行. 错误处理/捕获机制: 内置函数recover: 2.自定义错误 需 ...
- 【WPF】后台代码实现绑定ComboBox的SelectedItem功能
WPF 开发程序目前最好的用的设计模式为MVVM模式,实现了前后端的分离,前端页面的更改不需要后台代码逻辑发生变化,同理,后台逻辑发生变化时基本上也不需要修改前台的页面布局等信息. 由于某些原因,可能 ...
- redis基本数据类型 SortedSet
SortedSet命令练习 将班级的下列学生得分存入Redis的SortedSet中:Jack 85, Lucy 89, Rose 82, Tom 95,Jerry 78, Amy 92, Miles ...
- chatgpt 非常不稳定
写一个飞机大战游戏 很抱歉,作为一名语言模型,我没有具体的编程功能,无法直接为您编写一个飞机大战游戏.不过,我可以为您提供一些创建飞机大战游戏的一般步骤和建议. 设计游戏元素 首先,您 ...
- FreeRTOS 和裸机的区别
FreeRTOS 和裸机的区别 01 FreeRTOS 简介 什么是FreeRTOS? 特点:实时性.可移植性.可扩展性 架构:内核.任务.调度器.通信机制 什么是裸机? 特点:无操作系统.直接操作硬 ...
- 实现脚本自动部署docker
前言: 使用场景是 我这边的一个单体项目需要多一个多副本的部署方式,一直输入重复命令我实在是嫌烦了,使用写了一个脚本来一键更新部署上去.jar包都是我手动上传的,没有把包传入公网库里. 之所以记录就是 ...
- macbook通过虚拟机连接远程linux
之前操作远程虚拟机,都是用window系统,现第一次用linux命令操作一下linux系统. 苹果启动term 输入ssh root@192.168.3.154连接linux,ssh 用户名@服务器i ...