我可以使用nginx在单个端口中同时使用http auth和sso登录

时间:2017-08-17 11:06:01

标签: nginx proxypass

我通过2个端口提供单个应用程序。一个用于sso登录的用户,另一个用于使用httpAuth方法的api用户。我可以使用条件方法使两者都可以通过相同的端口访问。

SSO登录 - 代理通行证

server {
    listen 80;
    location ~ ^/(web|search|data)/(.*) {
        access_by_lua_file '/opt/sso/nginx-lua-sso/sso_impl.lua';
    }
}

HTTP登录 - 代理传递

server {
    listen 8080;
    location ~  ^/(web|search|data)/(.*)  {
        auth_basic "Restricted Content";
        auth_basic_user_file /opt/httpauth/conf/data/.htpasswd;
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用satisfy any指令

location ~  ^/(web|search|data)/(.*)  {
    satisfy any;

    auth_basic "Restricted Content";
    auth_basic_user_file /opt/httpauth/conf/data/.htpasswd;

    access_by_lua_file '/opt/sso/nginx-lua-sso/sso_impl.lua';
}