【问题标题】:nginx auth TCP socket not http request?nginx auth TCP套接字不是http请求?
【发布时间】:2021-09-14 07:23:47
【问题描述】:

nginx 可以通过后端服务验证请求,例如

location /somewhere_restricted {
    auth_request /isallowed;
}
location = /isallowed {
    proxy_pass backend_auth
}

但是,在每个 http 请求中都会检查 backend_auth。是否可以授权 TCP 套接字?套接字将被授权一次,然后通过它发出的所有 http 请求都将通过。注意我正在使用 http2

这就是 websocket 所发生的事情,但是对于普通的 http 请求,我需要相同的功能,但我还找不到与此相关的任何内容

【问题讨论】:

    标签: http authentication nginx tcp request


    【解决方案1】:

    没有授权的 TCP 套接字这样的东西。授权是应用程序协议的一部分,通用 TCP 套接字没有特定的应用程序协议。此外,location 特定于 HTTP 协议,即通用 TCP 没有位置。

    【讨论】:

    • 好的,谢谢,我希望有一种方法可以像使用 iptables 一样标记 TCP 连接,这样一旦标记了连接,就可以让它通过。我正在使用 websocket 和 nodejs,这使得授权(web)socket 然后通过它发送文件变得容易,但希望能够直接使用 nginx 做类似的事情,而不必在 websocket 上使用自定义协议跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2014-02-21
    • 1970-01-01
    • 2014-09-09
    • 2016-02-02
    相关资源
    最近更新 更多