我的情况是我有一个开发盒,里面装满了不同的应用程序,比如一个minecraft服务器,一个couchdb服务器,以及一个处理转发的nginx背后的基本wordpress博客。
现在他们都有自己的处理登录方式,但我想设置的是一些身份验证代理。
从某种意义上说,拦截所有进入服务器的HTTP请求并检查它们是否经过身份验证,如果没有返回登录页面,如果他们将请求通过wordpress或couchdb。我可以在服务器中有一个用户列表,让我的朋友登录1日志。
我尝试使用谷歌搜索许多不同的关键词,但还没有发现如何使用例如NGINX?我在网络方面有点新手请帮助!
答案 0 :(得分:0)
这是一个粗略的例子,在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
,需要针对您要整合的每个应用进行特定配置。