是否可以在没有 cookie 的情况下设置 nginx?

Is it possible to set up nginx without cookies?

我看到,尤其是在德国,越来越多的网站要求获得设置 cookie 的许可。我当前的项目不需要应用程序级别的 cookie。所以我想知道我是否不应该完全放弃饼干。

我的问题:

是否可以在不使用 cookie 的情况下完全使用 nginx 设置静态网站?

如果是这样,无 cookie 网站有缺点吗?

是的,这当然是可能的。

绝对没有缺点°(°除非您关心跟踪、用户登录或有任何偏好,尽管也存在其他选择)。

另一方面,有很多好处——您可以确保如果一个用户与另一个用户共享 URL,URL 将按预期工作,因为它不会取决于任何 cookie。

请注意,在 nginx 的帮助下,您实际上可以从严格需要 cookie 的后端应用程序中删除 cookie。例如,我在 http://BXR.SU/ 为我的 OpenGrok 安装做了这件事,在那里我使用 nginx 双向剥离 cookie,并有效地使用面向客户端的 URL 路径作为适当的首选项标识符将此类信息保存在 cookie 中,然后在将请求传递回 OpenGrok 时将此类 $uri 转换为 $args(代替 cookie)(如果 OpenGrok 不支持 $args 作为后备,它也可以在后端继续使用 cookie,但在将内容返回给客户端之前清除它们。

有关我的实施的更多讨论,请参阅 http://serverfault.com/questions/462799/leverage-proxy-caching-with-nginx-by-removing-set-cookie-header/467774#467774。例如,以下内容可用于确保您的后端既不能设置也不能获取任何 cookie:

    proxy_hide_header       Set-Cookie;
    proxy_ignore_headers    Set-Cookie;
    # important! Remember the special inheritance rules for proxy_set_header:
    # http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_set_header
    proxy_set_header        Cookie "";

请注意,即使使用上述代码,前端仍然可以在 JavaScript 的帮助下设置和读取 cookie。