我有一个受密码保护的服务器,在那里存储我希望我的用户只有拥有权限才能访问的文件。
在NGiNXconfiguration我想能够做到这样的事情:
proxy_pass http://username:password@domain:80/
所以用户可以去这个地址:
http://img.website.com/bob.jpg
然后在服务器的configuration将指向这个地址:
http://username:password@domain:80/bob.jpg
还有一种方法来调用脚本(最好是PHP),看看访问该文件的人是否已login。
我的会话被保存在另一台服务器上(在Redis数据库上),所以如果不能用PHP来做,还有另一种方法吗?
那么如何configuration呢?
请在代理上下文中查看以下两个链接,了解有关使用nginx进行HTTP身份validation的第一个问题:
这里有一个基本的例子:
location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://domain:80; proxy_set_header Authorization "Basic dXNlcm5hbWU6cGFzc3dvcmQ="; }
其中dXNlcm5hbWU6cGFzc3dvcmQ=是username:password在Base64中编码的username:password 。
关于你的第二个问题。 是的,使用PHP检查现有的HTTPauthentication会话是很容易的。 请转到此function的官方PHP文档。 在这里你会find许多有用的例子来帮助你开始: