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
是可信的。
nginx 常用配置之 pass_proxy相关推荐
- Nginx常用配置清单
本文来说下Nginx常用配置清单 文章目录 概述 侦听端口 访问日志 域名 静态资源 重定向 反向代理 负载均衡 SSL协议 概述 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同 ...
- 酒浓码浓 - nginx常用配置
nginx常用配置 1. 基础配置 main # 全局配置events { # nginx工作模式配置 }http { # http设置....server { # 服务器主机配置....locati ...
- Nginx 常用配置(学习笔记三)
#drop_sql为防爬虫.SQL注入等常用配置 user www www; worker_processes 1; error_log /usr/local/local/logs/nginx_er ...
- 2、nginx常用配置----作为web服务端
目录 环境及目的 nginx配置文件特点和结构 1 特性 2 主配置文件结构 常用全局配置 1 main段 2 events段 web服务相关配置 1 server_namerootlisten 11 ...
- 2021 最新 Nginx 常用配置清单
Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务,其因丰富的功能集.稳定性.示例配置文件和低系统资源的消耗受到了开发者的欢迎. 本文, ...
- Nginx 常用配置汇总,从入门到干活足矣
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 众所周知,Nginx 是 Apache服务不错的替代品.其特点是占有内存少,并发能力强,事实上 Ngin ...
- nginx常用配置详解
一.nginx配置文件结构: ... #全局块 events { #events块 ...} http #http块{ ... #http全局块 server #server块 { ... #serv ...
- nginx常用配置目录
Nginx配置"文件"路径(常修改文件) /etc/nginx/nginx.conf Nginx默认根目录"文件夹" /usr/share/nginx/html ...
- 性能怪兽-Nginx常用配置指北
目录 安装 Nginx操作命令 https反向代理 负载均衡 轮询 加权轮询 最少连接 加权最少连接 IP Hash 普通 Hash 动静分离 资源压缩 缓冲区 缓存机制 解决跨域 防盗链设计 配置S ...
最新文章
- SpringBoot之前端文件管理
- Hardfault 2
- 华为云视频Cloud Native架构设计与工程实践
- [华为机试练习题]60.水仙花数
- 宜搭小技巧|维护Excel太麻烦?Excel一键转应用,为你的工作减负
- 解决 QtCreator 3.5(4.0)无法输入中文的问题
- 小tip: base64:URL背景图片与web页面性能优化(转载)
- 3299元!最便宜的5G手机明日开启预售
- 统计面要素中点要素的个数.
- WorldView-2数据的预处理
- CentOS 5.4安装rar
- @Scope注解的proxyMode的作用以及如何影响IoC容器的依赖查找
- 【Https(二】】实战 openssl 配置 tomcat
- 淘宝直播的定义,淘宝直播小技巧介绍,以及淘宝有哪些推广渠道和展示位?
- Android手机怎样投屏到win10(无需联网)
- 易语言取颜色值与c语言,易语言如何取某坐标颜色值
- 阿里云服务器的ECS和RDS和OSS和SLB是什么意思?
- 【字源大挪移—读书笔记】 第三部分:字尾
- Fedora安装字体方法和Ubuntu非常不同!
- 批量处理更香啊,Python 可轻松制作图文并茂的 PDF 报告