apache-2.2 – 是否可以通过Content-Type将请求路由到不同的应用程序?

前端之家收集整理的这篇文章主要介绍了apache-2.2 – 是否可以通过Content-Type将请求路由到不同的应用程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在设计一个JSON API,我想使用某种内容协商来对API进行版本控制.我目前正计划使用Vendor MIME Types来做到这一点.

虽然我绝对可以在应用程序级别执行此操作,但我认为最好在HTTP服务器级别实现此目的. Apache或Nginx可以实现吗?

Content-Type看起来像:application / vnd.vendorname-v1 json
或者可能使用参数:application / vnd.vendorname json; v = 1

Nginx对这类问题的惯用方法是通过地图.请参阅my answer at StackOverflow.

基本上,您在http部分中定义一个地图

map $any_variable $my_upstream {
  # Default value:
  default upstream1;

  # Exact match:
  application/vnd.vendorname+json;v=1 upstream2;

  # Regexp:
  ~^application.*vnd.vendorname-v1\+json upstream3;
}

您可以在一个地图中混合完全匹配和正则表达式.

然后你只需在你的服务器或位置部分使用$my_upstream:

location / {
  proxy_pass http://$my_upstream$uri;
}

Nginx懒惰地评估地图变量,只有一次(每个请求)以及何时使用它们.

原文链接:https://www.f2er.com/nginx/435526.html

猜你在找的Nginx相关文章