nginx基本身份验证登录循环

时间:2019-12-03 14:42:11

标签: symfony authentication nginx

我们需要为一个虚拟主机配置基本身份验证。当仅使用基本身份验证(没有列入白名单的IP地址)时,我们会陷入登录循环。添加我们的外部IP地址后,它就可以使用。

前端基于vue(afaik),而php应用程序基于symfony。 symfony应用程序是具有登录名等的主应用程序。

配置如下:

server {
    listen 80;
    listen 443 ssl;

    server_name subdomain.domain.com;
    charset     utf8;

    root /var/www/subdomain.domain.com/frontend/web;

    index app.php index.php index.html;

    access_log /var/www/subdomain.domain.com/nginx.access.log;
    error_log  /var/www/subdomain.domain.com/nginx.error.log;

    location / {
        try_files $uri /index.html$is_args$args;
    }

    error_page 500 502 504 /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ /\.ht {
        deny  all;
    }

    location ^~ /dashboard {
        alias /var/www/subdomain.domain.com/backend/public;
        try_files $uri $uri/ @dashboard;

        location ~ \.php(/|$) {

            proxy_read_timeout 600s;
            proxy_send_timeout 600s;
            proxy_connect_timeout 600s;
            fastcgi_read_timeout 600s;

            proxy_buffer_size 512k;
            proxy_buffers 16 512k;
            proxy_busy_buffers_size 512k;

            fastcgi_buffer_size 128k;
            fastcgi_buffers 4 256k;
            fastcgi_busy_buffers_size 256k;

            fastcgi_pass 127.0.0.1:9000;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
        }
    }

    location @dashboard {
        rewrite /dashboard/(.*)$ /dashboard/index.php?/$1 last;
    }

    ### SSL Config ###
    ...
    ###
}

在没有基本身份验证的情况下访问网站时-一切正常。添加以下代码块对我们有用(ip白名单)

satisfy any;
auth_basic           “Protected”;
auth_basic_user_file /etc/nginx/.htpasswd;

allow 127.0.0.1;
allow our.ip.address.external;
allow the.host.ip.itself;
deny  all;

从白名单中删除自己的IP地址时,我们陷入了登录循环。它要求基本的auth用户并每次通过。当访问域时(vue前端),我们将重定向到symfony应用进行登录(... / dashboard),成功登录后将看到真实的仪表板(vue,其中api调用了后端,afaik)。

我不知道,为什么IP白名单有效,但普通的基本auth无效?

有人有什么想法吗?

预先感谢 西蒙

0 个答案:

没有答案
相关问题