0

我的情况是我有一个开发箱,里面装满了不同的应用程序,比如我的世界服务器、couchdb 服务器和 nginx 后面的基本 wordpress 博客,它处理转发。

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

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

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

4

1 回答 1

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 文档,但总体思路适用于您要保护的任何基于 HTTP 的应用程序。您需要为每个不同的应用程序重复此配置块。

请注意,上述设置中的重写使您可以使用除 URL 根目录之外不希望存在于任何位置的应用程序。这不是必需的。

另请注意,如果您希望有一个用户登录的页面,然后在您的所有应用程序之间共享该登录信息,那就要复杂得多。这通常被称为Single Sign On并且需要为您打算集成的每个应用程序进行特定配置。

于 2013-06-10T12:51:32.640 回答