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

我正在设计一个JSON API,我想使用某种内容协商来对API进行版本控制.我目前正计划使用Vendor MIME Types来做到这一点.虽然我绝对可以在应用程序级别执行此操作,但我认为最好在HTTP服务器级别实现此目的. Apache或nginx可以实现吗?Content-Type看起来像:appli

我正在设计一个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懒惰地评估地图变量,只有一次(每个请求)以及何时使用它们.

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部