nginx 常用配置之 pass_proxy

这篇具有很好参考价值的文章主要介绍了nginx 常用配置之 pass_proxy。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,我是 17。

今天和大家聊聊 pass_proxy 代理。

pass_proxy 代理

在前端代理主要是为了跨域。虽然前端跨域有多种方法,各有利弊,但用代理来跨域对开发是最友好的。用代理可以不用修改产品代码切换线上线下,非常安全。pass_proxy 默认会把 cookie 也一同转发。 常用的配置非常简单。

不带斜杠

前端 /api/user

后端 /api/user

 location ^~ /api/ {
     proxy_pass http://127.0.0.1:3001;
 }

不带斜杠把 path 直接拼接在 url后面;

带斜杠

前端 /api/user

后端 /user

 location ^~ /api/ {
     proxy_pass http://127.0.0.1:3001/;
 }

带斜杠会先去掉匹配到的 path, 再拼接。

正则匹配的时候不能带斜杠

~ 区分大小写正则匹配 ,~* 不区分大小写正则匹配 。location 用正则匹配的时候,proxy_pass 后面不能以 / 结尾,因为 nginx 不能处理这种情况。

 location ~ /api/ {
     proxy_pass http://127.0.0.1:3001/;
 }

本例中,请求 localhost:3000/ 会导致 nginx 报错。

斜杠后面加路径

前端 /api/user

后端 /web/api/user

 location ^~ /api/ {
     proxy_pass http://127.0.0.1:3001/web$request_uri;
 }

代理之前rewrite

location /search/ {
    rewrite    /search/([^/]+) /s?wd=$1 break;
    proxy_pass http://127.0.0.1:3001;
}

服务端获取真实ip

反向代理: 简单来说 proxy_pass 把请求转发到其它服务地址的时候,就是反向代理。

如果是客户端与服务器直接连接,nginx 变量 $remote_addr 就可以拿到真实ip。$remote_addr 是不能伪造的。但是如果客户端是经过反向代理连接的服务器,服务器能拿到的只有代理服务器的 IP。为了能拿到客户端真实 IP,代理服务器在转发的时候需要加上一个 http 扩展头部 X-Forwarded-For。

所有代理的 ip 依次列出来,从远及近。

X-Forwarded-For: IP0, IP1, IP2

X-Forwarded-For 是一个 HTTP 扩展头部。HTTP/1.1(RFC 2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实 IP。如今它已经成为事实上的标准,被各大 HTTP 代 理、负载均衡等转发服务广泛使用,并被写入 RFC 7239(Forwarded HTTP Extension)标准之中。

location /api/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:3000/;

}

$proxy_add_x_forwarded_for变量包含客户端请求头中的"X-Forwarded-For",与$remote_addr用逗号分开,如果没有"X-Forwarded-For" 请求头,则$proxy_add_x_forwarded_for等于$remote_addr$remote_addr变量的值是客户端的IP。

可能你会担心,ip会不会被伪造。即使客户端伪造了 ip,nginx 也会用真实的 ip 进行重置。所以 $remote_addr 是可信的。文章来源地址https://www.toymoban.com/news/detail-638130.html

到了这里,关于nginx 常用配置之 pass_proxy的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx快速入门:nginx各类转发、代理配置详解|location、proxy_pass参数详解(五)

    咱们上节讲解了nginx的负载均衡配置,但是还有很多其他的转发情况,包括不同路径转发至不同的业务服务,通配符识别路径转发等。 今天一起来学习nginx的转发配置 首先我们要了解nginx进行转发代理的核心在于两处,一是入口,二是出口;入口就是url路径匹配识别对应的路

    2024年01月20日
    浏览(34)
  • Nginx配置SSL安全证书避免启动输入Enter PEM pass phrase

    背景: 公司nginx代理服务https证书到期,在更换时生成CSR证书时输入了KEY密码。导致配置了证书后启动nginx提示会输入PEM pass phrase(如图一) 而且是每次重启nginx都需要输入,特别麻烦,而且服务器如果重启nginx服务自启动就废了,下面是解决办法。 解决思路: 这 种情况可能

    2024年02月07日
    浏览(31)
  • 软件-常用软件系统架构

      目录 1.客户端-服务器架构 2.分布式架构 3.微服务架构 4.事件驱动架构 5.单体架构 6.混合架构 当我们谈论系统架构时,可以将其比喻为一座房子的设计和结构,想象一下你计划建造一座豪华别墅,你需要考虑各种因素:如房子的大小、房间的布局、功能区的划分电力和水源

    2024年02月12日
    浏览(28)
  • 【资源-软件合集】常用软件合集收藏

    主要用于以后方便查找. 码农类 虚拟机类 VMware Workstation Pro 16中文XX版v16.0.0 数据库类 SQLite官方数据库 编译工具类 https://ftp.gnu.org/gnu/gcc/ https://ftp.gnu.org/pub/gnu/gcc/

    2024年01月17日
    浏览(27)
  • Ubuntu22常用软件

    别存太多重要东西在Ubuntu ,硬盘损坏就麻烦 1.打开Extension应用,添加拓展。2.添加User Theme,在旁边的Browse添加,第一个就是。3.添加Dash to Dock 参考:Ubuntu 22.04 LTS 入门安装配置优化、开发软件安装一条龙_汝嫣兮的博客-CSDN博客 一键安装 直接官网安装,sudo dpkg -i 然后配置 参考

    2024年02月08日
    浏览(33)
  • 08-Docker安装常用软件

    以安装 Mysql 5.7为例: 启动 Mysql 容器,并配置容器卷映射: 参数说明: -d - 后台运行容器并返回容器ID,即启动守护式容器 -p 3306:3306 - (宿主机端口 : 容器内软件端口)将容器的端口映射到主机的端口 -e - 为容器添加环境变量 -v 容器挂载 -name 起名 在 /app/mysql/conf 下新建 my

    2024年02月05日
    浏览(27)
  • 【Ubuntu】Ubuntu常用软件部署

    1.安装jdk1.8 (1).apt方式安装 1).安装 1.在终端中输入以下命令,以更新软件包列表 2.在终端中输入以下命令,以安装JDK 1.8 3.将Java 1.8设置为默认版本。在终端中输入以下命令 终端会输出类似以下2种情况: 情况1: 输入数字,以选择Java 1.8。在我这里,我会输入“2”。 情况2:

    2024年02月11日
    浏览(30)
  • FPGA开发常用软件的安装

           这篇博客里,我们一起去安装开发FPGA必备的软件包括:Vivado、Modelsim、Gvim,并附上详细的安装步骤和配套说明,正常来说安装配置好这些软件可能也需要花费2-3小时,所以需要大家在这里多些耐心。工欲善其事必先利其器,选择合适版本的开发软件和工具,也是往后

    2023年04月08日
    浏览(70)
  • 人工智能常用软件及下载地址

    软件1 Visual Studio软件下载地址: https://visualstudio.microsoft.com/ 软件2 Qt软件官方网站及下载地址:https://www.qt.io/ 软件3 Java软件下载地址:https://www.java.com/ 软件4 Ecplise软件下载地址:https://www.eclipse.org/downloads/ 软件5 Python软件下载地址:https://www.python.org/ 软件6 Eric软件下载地址:

    2024年02月07日
    浏览(28)
  • 大数据基础环境与常用软件搭建

    大数据基础环境的搭建需要以下步骤: 安装操作系统:大数据环境通常使用Linux操作系统,推荐使用CentOS或Ubuntu。 安装Java环境:大数据软件通常需要Java环境支持,可以安装OpenJDK或Oracle JDK。 安装Hadoop:Hadoop是大数据处理的核心软件,可以从官网下载最新版本,并按照官方文

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包