我遇到的情况是,我有一个装满了不同应用程序的开发箱,比如minecraft服务器,couchdb服务器,以及nginx后面的一个基本的wordpress博客,它负责转发。
现在,它们都有自己的登录处理方式,但我想设置的是某种身份验证代理。
在某种意义上,拦截所有进入服务器的HTTP请求,并检查它们是否经过身份验证,如果没有,则返回登录页面,如果它们允许请求通过wordpress或couchdb。我可以在服务器中有一个用户列表,让我的朋友用1个日志登录。
我尝试过用许多不同的关键词搜索,但是还没有发现如何使用例如NGINX这样的关键词。我是一个网络新手,请帮帮忙!
发布于 2013-06-10 20:51:33
下面是一个粗略的示例,它在nginx中执行HTTP身份验证,然后代理连接到原始源:
location /couchdb {
auth_basic "Restricted";
auth_basic_user_file htpasswd;
rewrite /couchdb/(.*) /$1 break; # Optional, depends on what you're proxying to
proxy_pass http://localhost:5984;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}以上内容来自couchdb docs,但其基本思想适用于您想要保护的任何基于HTTP的应用程序。您需要为每个不同的应用程序重复此配置块。
注意,上面设置中的重写允许您使用那些不希望位于URL根目录之外的任何地方的应用程序。这不是必需的。
还要注意的是,如果你想要一个单一的页面,让用户登录,然后在所有应用程序之间共享登录,那就复杂得多了。这通常被称为Single Sign On,并且需要为您打算集成的每个应用程序进行特定的配置。
https://stackoverflow.com/questions/17024163
复制相似问题