技术解析

nginx 能否给用户配置特定页面
0
2021-05-19 19:59:46
idczone

nginx 自带有Ngx_http_auth_basic_module模块,可以用来进行加密访问,想问一下如果配置了多用户,能否让登录的用户跳转到特定的路径,也就是说,有什么参数能用来判断目前登录的是哪个用户吗?例如:

  • 首页example.com显示登录页面:
  1. 当以user1+passwd1登录的时候,则页面路径跳转到example.com/user1
  2. 当以user2+passwd2登录的时候,则页面路径跳转到example.com/user2

主要是想把 fancyindex 作为多用户网盘来使用,具体要怎么做?或者有其他的实现方法吗?

还有就是,使用自带的Ngx_http_auth_basic_module模块进行加密国外服务器访问的安全性如何?如果容易被破的话还有什么替代方案吗?


HTTP Basic Auth 是将用户名密码 base64 后放在 Header 中,安全性自行定夺。
你这个需求最好还是用后端程序实现。

干嘛不写个后端来处理分发



感谢解答,不过对后端开发不熟,所以才想找找看有没有现成的方案可以直接用。

有 https 的话问题不大。

写个后端比研究 nginx 简单多了吧

$remote_user

后台返回一个角色不就好

Ngx_http_auth_basic_module 这个模块实现的是 HTTP 基本认证,根本就不涉及到多用户(或者说它实现的就是最基础的 CSP )。
所以你直接去找个支持多用户的网盘程序不就得了?

本质上是要写后端,一定要放在 nginx 里面跑的话,可以试试 lua 模块

可以试一试 Openresty 这种 nginx 增强版,通过 lua 代码实现逻辑





感谢解答,用了`$remote_user`做判断,然后 rewrite 到对应 location,也算是解决了。

主流网盘都试过,最近也是刚从用了大半年的 nextcloud 退坑的,主要是网盘功能多,用不到又占用资源,主要还是以满足目前的需求为主,毕竟小鸡。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服