nginx - 如何将 NGINX 设置为按标头转发?
问题描述
如何检测请求中的(a)特定标头,然后根据所述标头转发请求?
假设我有一个请求的标头有:
X-Application: 'eCommerce'
然后我想将其转发到,127.0.0.1:3000
同时将所有其他流量保留到127.0.0.1:8000
.
解决方案
任何 HTTP 标头的值都可以通过$http_<header>
nginx 变量获得。我认为解决这个问题的最简单方法是使用map
块:
map $http_x_application $backend {
eCommerce 127.0.0.1:3000;
default 127.0.0.1:8000;
}
然后proxy_pass
以下列方式使用您的指令:
proxy_pass http://$backend;
请注意,map
块应在块http
外的上下文中定义server
。
推荐阅读
- excel - 我想用 VBA 声明和创建一个用户表单
- python - 尝试使用函数创建新数据框列时出现值错误
- hadoop - 在sqoop中使用--input-fields-delimited-by?
- python - 不确定 Anaconda 是否已完全移除
- ffmpeg - 如何使用 ffmpeg/ffprobe 同时从视频中提取黑框和音量信息
- java - 通用枚举 JPA AttributeConverter 实现
- android - 尝试将地理围栏添加到 android 应用程序不断出错
- swift - 如何通过循环组合文本视图?
- mysql - 错误:使用 NodeJS 在 MySQL 中调用退出后无法将查询排入队列
- node.js - NodeJs 和 db 返回值