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

推荐订阅源

Google DeepMind News
Google DeepMind News
L
LangChain Blog
H
Help Net Security
博客园_首页
T
Tailwind CSS Blog
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
Recent Announcements
Recent Announcements
D
DataBreaches.Net
U
Unit 42
Vercel News
Vercel News
I
InfoQ
Martin Fowler
Martin Fowler
Microsoft Azure Blog
Microsoft Azure Blog
Apple Machine Learning Research
Apple Machine Learning Research
S
SegmentFault 最新的问题
Jina AI
Jina AI
博客园 - 叶小钗
博客园 - 【当耐特】
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
Last Week in AI
Last Week in AI

博客园 - 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;
    }
}