在nginx中编码和解码路径名
通常可以在以下位置访问文件: http://example.com/cats/cat1.zip 我想编码/加密路径名(/cats/cat1.zip),以便链接通常不可访问,但在路径名加密/编码后可访问: http://example.com/Y2F0cy9jYXQxLnppcAo= 我上面使用base64编码是为了简单,但更喜欢加密.我该怎么做呢?我必须编写自定义模块吗? 最佳答案
如果您唯一关心的是限制访问某些网址,您可以查看this post on Securing URLs和Secure Link Module in Nginx.
它提供了相当简单的文件保护方法 – 加密URL的最基本和最简单的方法是使用secure_link_secret指令:
访问cat1.zip文件的URL将是http://example.com/cats/80e2dfecb5f54513ad4e2e6217d36fd4/cat1.zip其中80e2dfecb5f54513ad4e2e6217d36fd4是在连接两个元素的文本字符串上计算的MD5哈希值: >哈希后面的URL部分,在我们的例子中是cat1.zip 上面的示例还假设通过加密URL可访问的文件存储在/ path / to / secret / files / secure目录中. 此外,还有一种更灵活,但也更复杂的方法,通过使用secure_link和secure_link_md5指令来保护带有ngx_http_secure_link_module模块的URL,通过IP地址限制URL访问,定义URL的过期时间等. 如果您需要完全隐藏您的网址(包括cat1.zip部分),您需要在以下两者之间做出决定: >在Nginx端处理加密URL的解密 – 编写自己的,或重用其他人编写的模块 这两种方法都有利有弊,但IMO后者更简单,更灵活 – 一旦设置了代理,就不需要担心Nginx,也不需要用一些特殊的先决条件来编译它;无需使用您在应用程序中编写的语言编写或编译代码(除非您的应用程序包含C,Lua或Perl中的代码). 这是一个简单的Nginx / Express应用程序示例,您可以在其中处理应用程序中的解密. Nginx配置可能如下所示:
在应用程序(Node.js / Express)方面,您可能会遇到以下情况:
上面的示例假定受保护的文件位于/ path / to / secured / files目录中.此外,它假设如果URL可访问(正确加密),您正在发送文件以供下载,但如果您需要执行其他操作,则会应用相同的逻辑. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- nginx比apache处理静态文件速度快,但是nginx处理
- iis-7 – 如何最好地配置IIS7日志记录以捕获“H
- ruby-on-rails – 是否有必要将Unicorn放在Ngin
- nginx – proxy_cache_和fastcgi_cache有什么区
- Nginx配置文件nginx.conf中文详解
- apache-2.2 – nginx重定向回remote_addr IP
- ruby-on-rails – 压缩rails资产和nginx gzip
- node.js – 在nginx下运行nodejs
- nginx – 我的www子域名收到了SSL_ERROR_BAD_CE
- javascript – 服务器渲染在静态网站上反应js