Nginx中的请求序列
我有一个场景,服务器需要在实际请求之前执行授权请求。因此,一个请求由两个不同的服务提供 Nginx的位置必须由Auth服务处理,如果响应状态为200ok,则请求应转发到功能服务。否则,如果响应状态为401,则该状态应回复至前端Nginx中的请求序列,nginx,nginx-location,Nginx,Nginx Location,我有一个场景,服务器需要在实际请求之前执行授权请求。因此,一个请求由两个不同的服务提供 Nginx的位置必须由Auth服务处理,如果响应状态为200ok,则请求应转发到功能服务。否则,如果响应状态为401,则该状态应回复至前端 upstream auth_service { server localhost:8180; } upstream feature_service { server localhost:8080; } location /authAndDo { #
upstream auth_service {
server localhost:8180;
}
upstream feature_service {
server localhost:8080;
}
location /authAndDo {
# suggest here
}
nginscript中的代码片段也可以。一般来说,这样的代码片段在web服务器上是不可能的。401是前端的一个响应,并提供HTTP WWW身份验证响应头。根据需要开发web应用程序或编辑401文件。用户、浏览器应理解该消息 Nginx community edition的auth_请求将仅在子请求返回HTTP 200时处理,否则对于401,默认情况下将不会重定向到401以上,其他标头将不会处理响应以保护应用程序和用户。Nginx社区版甚至不支持HTTP/2的所有功能。它会变得更糟 Apache2 web服务器完全支持HTTP/2,并且只在少数浏览器上工作。很少有浏览器允许Apache2完美地做到这一点。其他显示无法加载页面。在Stack Exchange networks的各个子域上,人们曾要求使用Apache2使其适用于所有浏览器 您很难在Nginx上重定向:
error_page 401 /401.html;
location ~ (401.html)$ {
alias /usr/share/nginx/html/$1;
}
另一种方法是在另一台服务器上使用反向代理。我不能保证加载页面失败 专门用于此目的,通过默认情况下不构建而存在
它允许您通过子请求将身份验证放在您想要的任何位置,有效地将身份验证与实际资源分开。询问服务器配置问题的合适平台是serverfault.com,而不是离题的地方:专业服务器上的问题、网络、,除非直接涉及编程或编程工具,否则相关的基础设施管理与堆栈溢出无关@罗布:我想这涉及到nginscript编程。我认为不可能避免为ngx loc编写这样一个序列的脚本。您能否向我们展示您迄今为止尝试过的代码片段,并具体解释哪些尝试无法正常工作?@csm\u dev我很好奇解决此问题的最佳方法。我不会问我是否知道。我可以编写nginscript代码,但也许我不应该这样做,而是应该开始实现自己的nginx模块或其他东西。@yvs,请您看看我的答案是否解决了问题,如果是,请接受答案和/或奖励奖金。如果两者都不执行,则至少一半的赏金将转到/dev/null。谢谢供参考:我做了+1你的问题。