Nginx代理秒加auth认证,安全升级超简单
|
admin
2026年5月8日 11:22
本文热度 79
|
文章目录
前言
由于大多数前后端分离项目都需要nginx做代理,所以nginx 的应用非常广泛,然而有时候,我们为了集成第三方的门户,以及用户验证,不得不需要通过nginx 做一层包装,假装是一个整体,然后为了尽量减少代码改动,所以需要在nginx层做代理的时候,需要进行转发前的token 用户信息校验。
一、nginx 校验 auth_request
nginx 是通过 auth_request 实现用户校验的
我们通过源码的方式安装nginx,然后加入auth 模块的支持
二、使用步骤
1.安装nginx
具体安装可以参考: nginx安装
其中 --with-http_auth_request_module 就是加入auth的模块支持,这样就ok了。
2.配置代理验证
配置思路如下:
- 根据auth_reqeust 验证token合法性
- 判断合法性。合法继续代理,不合法直接返回错误,不再继续代理改请求
server { listen 8080; server_name localhost; location / { root html; index index.html index.html; try_files $uri $uri/ /index.html; } location /api/ { set $token $arg_token; auth_request /auth; error_page 402 500 = @error401; proxy_pass http://127.0.0.1:8080/; } location = /auth { internal; proxy_pass http://127.0.0.1:8080/user/token; proxy_method POST; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI token; } location @error401 { add_header Set-Cookie "NSREDIRECT=$scheme://$http_host$request_uri;Path=/"; return 424 "token expired"; } }
总结
这样就通过了auth_request对转发的请求做了用户认证,有利于做门户网站的集成,以及增加了安全性;
重点来了!!!
如果不是第一次安装,而是第二次编译(已经是启动状态), 光重启是没用的,必须关掉nginx 然后启动
阅读原文:https://mp.weixin.qq.com/s/iSo1bEOkTov2dVI6JzJt2A
该文章在 2026/5/8 11:22:20 编辑过