nginx - NGINX基于请求标头集的反向代理?
问题描述
如果用户请求没有一组标头,则反向代理响应应路由到不同的后端服务器,否则如果请求具有这些标头,则请求必须转到不同的服务器。
在 NGINX 中是否有可能,我们如何做到这一点?
解决方案
假设您正在使用x-backend-pool
请求标头,您可以使用以下 NGINX 模块来获取您想要的内容:http: //nginx.org/en/docs/http/ngx_http_map_module.html#map
map 指令允许您根据其他变量中的值设置变量,我在下面为您提供了一个示例:
upstream hostdefault {
server 127.0.0.1:8080;
}
upstream hosta {
server 127.0.0.1:8081;
}
upstream hostb {
server 127.0.0.1:8082;
}
map $http_x_backend_pool $backend_pool {
default "hostdefault";
a "hosta";
b "hostb";
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://$backend_pool;
}
}
推荐阅读
- java - 构造函数未使用 java 编程定义
- clang - clang 使用哪个汇编程序?
- python - 忽略或静音 QThread 警告
- java - 如何链接完整的期货
- magento-1.9 - Observer Mage::throwException 消息不显示给客户
- python-3.x - 实现掩码 rcnn 时出错(OverflowError: Python int too large to convert to C ssize_t)
- javascript - HTML 画布和动画
- javascript - SAPUI5,将数据从 API 存储到 JSON 模型中,只能被间接访问
- android - Androidx 滑动以在回收站视图中显示删除图标并进一步滑动以删除
- amazon-dynamodb - 开始日期结束日期范围查询的 Dynamodb 模型数据