nginx限制指定路径只能被拥有指定cookie的客户端访问

- web

本篇内容为了增加网站的安全性,保护后台登录页(/admin/login)只能被拥有指定 cookie 的客户端访问,没有 cookie 的客户端访问会直接报 404 。

需要访问后台登录页的授权用户,访问网站的 /captcha/getcookie 路径即可被设置对应的 cookie ,在 cookie 有效期内正常访问后台登录页,cookie 过期后再次访问则将返回 404 。

server {
    listen 80;
    server_name _;

    location /admin {
        if ($cookie_admin_cookie != "imzcy.cn") {
            return 404;
        }
        proxy_pass http://localhost:6412;
    }

    location /captcha/getcookie {
        add_header Set-Cookie "admin_cookie=imzcy.cn; Max-Age=30; Path=/";
        return 204;
    }

    location / {
        proxy_pass http://localhost:6412;
    }
}