我有一个网站设置,该网站由引擎盖下的 2 个 Web 应用程序提供支持。
一个应用程序 ( fast
) 应该处理目录页面。
另一个应用程序 ( slow
) 应该处理客户/购物车/结帐页面。
两个应用程序应该运行在同一主机上:
example.com:80 ( fast
) 和 example.com:8000 ( slow
)
当然,8000 端口不会暴露给访问者,并由 nginx 内部使用。
我希望 Web 请求slow
仅在应用程序返回特定响应标头时才到达应用fast
程序,例如 X-catalog-not-found。
预期结果如下:
- 所有请求都转到
fast
应用程序 example.com:80 - 如果
fast
应用程序通过 uri 找到产品 - 它会呈现页面 - 如果
fast
应用程序没有通过 uri 找到产品 - 它发送空正文和响应标头 X-catalog-not-found - 根据上一步中收到的标头,nginx 将代理传递到
slow
应用程序 example.com:8000
我觉得应该使用 ngx_http_proxy_module 或/和 nginx_upstream 模块,但在阅读文档后还没有找到可行的解决方案。