使用Unix UserID重写Nginx位置块

时间:2014-01-28 22:11:25

标签: wordpress security video nginx rewrite

我在为服务于移动/平板电脑平台的视频服务时使用Nginx位置块级重写的wordpress网站有一个安全方案。

移动操作系统点是关键标准,但在此工作时,我将使用此系统来保护桌面/笔记本电脑用户代理。

请注意,这是一个经济高效的解决方案,因为我已经在客户可以付费时为iOS和Android进行分块,加密和流式传输,或者他们有更强大的需求。

考虑到WP用户最容易通过ID区分,并且我期望尽可能简化我的位置指令,我想做以下事情:

  1. location / var / www / mydomain / video / *重写为〜/(userID)/videoFile.mp4
  2. 诀窍是将来自WordPress的userID转换为Nginx可以在位置块中使用的方案,因此我认为将WP用户“X”添加到Unix用户,因为“userX”将有助于简化这一过程。

    我想到了安全模型(以及Nginx重写模块),就像铁路交换机一样,将每个用户发送到他们自己唯一编号的轨道上,这样前端就可以处理 userID 的基本身份验证,Nginx处理传输,当任何产品或任何对userID有效的东西时,会添加轨道末尾的金罐。

    因此,只有经过身份验证(已登录)的 userID 才能在理论上访问付费视频,但任何用户都可以请求...带有可变结果。

    1. 为了保持前端的接口和代码维护简单,后端简单和性能,我想只使用1个位置指令,它将接受任何请求(m​​ydomain / video / *)并写入/ var /网络/视频/用户X /〜
    2. 请注意,web-root是/ var / www / mydomain,所以我在web-root之外重写视频位置!

      请求URI将在前端完全形成,并作为http://domain.com/video/product1/videoFile.mp4(.webm,无论如何......)提供给任何符合条件的成员的视频播放器,因此需要保留部分URI。

      但如果我在wordpress中是UserID“13”,那么,在单个位置指令中告诉Nginx我是用户“user13”的最佳方法是什么?

      抱歉,这是一个很长的设置,但这是我可以提出的方案中最简单的部分 - 只有一个包含多个工作部件的组件。

      另外,我目前正在开发此解决方案,将在不到一周的时间内完成。我很想听到任何反馈,当然我正在寻找一些比我更好地获得shell脚本的人的“专家建议”。

1 个答案:

答案 0 :(得分:0)

#!/bin/bash
#####
# thanks to Olivier Dulac from StackOverflow
#####
export NBMIN=15

#find all subdirs jsut underneath each /var/www/flash/avmin/*/ that are $NBMIN minutes   old
for xdir in $(find /var/www/flash/avmin -type d -mindepth 2 -maxdepth 2 -cmin +${NBMIN} )
do
    #for those dirs, delete symlinks "just underneath", that are older than $NBMIN minutes
    find "$xdir" -mindepth 1 -maxdepth 1 -type L -cmin +${NBMIN} -exec rm '{}' \;
    #and then if there is nothing else in that dir, delete it:
    command rmdir "$xdir" -rf 
    #without -f and -r... will only remove "$i" directory if it's   empty!
   done