在开发框中设置HTTP身份验证

时间:2013-06-10 12:43:26

标签: http authentication nginx

我的情况是我有一个开发盒,里面装满了不同的应用程序,比如一个minecraft服务器,一个couchdb服务器,以及一个处理转发的nginx背后的基本wordpress博客。

现在他们都有自己的处理登录方式,但我想设置的是一些身份验证代理。

从某种意义上说,拦截所有进入服务器的HTTP请求并检查它们是否经过身份验证,如果没有返回登录页面,如果他们将请求通过wordpress或couchdb。我可以在服务器中有一个用户列表,让我的朋友登录1日志。

我尝试使用谷歌搜索许多不同的关键词,但还没有发现如何使用例如NGINX?我在网络方面有点新手请帮助!

1 个答案:

答案 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,需要针对您要整合的每个应用进行特定配置。