惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
F
Fortinet All Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
博客园 - Franky
T
The Blog of Author Tim Ferriss
D
DataBreaches.Net
量子位
博客园 - 三生石上(FineUI控件)
I
InfoQ
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
D
Docker
美团技术团队
雷峰网
雷峰网
U
Unit 42
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理

博客园 - zakun

适配 WSL 的 proxy 完整脚本 Gitlab CI 本地开发部署 Golang grpc 实践 Mongo 聚合演示 真・一键激活 JetBrains 全家桶! Kafka 分区细说 解决国内Homebrew安装 Homebrew How to Install PHP Install Elasticsearch with Docke wsl2 网络相关设置 php docker image Golang常见的并发模式 Gin框架的几种热加载方法 协程 Mysql Full-Text Index 介绍 gitlab runner 使用摘要 Gitlab Docker 使用摘要 Docker 简介 linux-查看文件夹大小 Linux 如何删除乱码文件-inode删除 Nginx反爬虫: 禁止某些User Agent抓取网站 PHP添加$_SERVER服务器环境变量
nginx 反向代理常用设置说明
zakun · 2024-08-12 · via 博客园 - zakun

nginx 反向代理常用设置说明

根据不同的后缀名访问不同的服务器地址

例如:

server {
    listen       80;
    server_name  aaa.com.cn;# 服务器地址或绑定域名
  
    # ^~/api 表示匹配前缀为api的请求
    location ^~ /api/ {  
        # proxy_pass的结尾有/, -> 效果:会在请求时将/api/*后面的路径直接拼接到后面
        proxy_pass  http://www.x.com:9528/api/;
  
    }

    location ^~ /blog/ {
        # ^~/blog/ 表示匹配前缀为blog/后的请求
        proxy_pass  http:/www.y.com/blog/; 
    }
}

proxy_set_header说明要配置反向代理服务器传递给其他服务器的标头,我们可以在之前创建的配置文件中定义它们。使用 proxy_set_header 指令调整标头。 它们可以在server, location 或 http 块中配置。例如

proxy_set_header Host $proxy_host;
proxy_set_header Connection close;

配置说明

项目 说明
Host $http_host 服务器本身IP
X-Real-IP X-Real-IP $remote_addr,前一节点IP(非用户真实IP)
X-Forwarded-For $proxy_add_x_forwarded_for $proxy_add_x_forwarded_for,前一节点X-Forwarded-For值
X-Forwarded-Proto $scheme 浏览器在访问时的实际协议

X-Forwarded-For: 简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。 它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。
标准格式:X-Forwarded-For: client1, proxy1, proxy2。值通过一个“逗号+空格”把多个IP地址区分开, 最左边(client1)是最原始客户端的IP地址, 代理服务器每成功收到一个请求,就把请求来源IP地址添加到右边。

$host$http_host, $proxy_host 说明

变量名 是否显示端口
$host 不显示端口 浏览器请求的ip
$http_host 端口存在则显示 被代理服务的ip和端口号
$proxy_host 默认80端口不显示,其它显示 被代理服务的ip和端口号

标准配置示例

server {
    listen 80;
    server_name www.xxx.com;

    location /
    {
        proxy_pass http://xxx.com;
        proxy_set_header host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}