有了NGiNX,用户如何在不redirect的情况下访问另一台服务器上的文件呢?

我有一个受密码保护的服务器,在那里存储我希望我的用户只有拥有权限才能访问的文件。

在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许多有用的例子来帮助你开始: