nginx基本身份验证在每个页面上询问凭据

时间:2021-03-06 16:05:24

标签: reactjs authentication nginx authorization

我遇到了 nginx 的问题,我有一个位置 / 用于我的静态反应文件,在下面我还有其他几个用于 apis 的位置,所以在设置中我只为 api 放置了 basic_auth,用于反应我没有放置任何身份验证,问题是每当反应会调用一个api时,就会出现一个要求输入用户名和密码的提示,在我的情况下,反应是一个具有多个步骤的表单,在每个步骤中它都会调用一个api,那么我怎么能“释放”只是在不需要身份验证的情况下对调用这些api做出反应呢?谢谢!

nginx.conf:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=50r/m;
limit_conn_zone $binary_remote_addr zone=addr:10m;

server {
    listen 80;
    server_name localhost;

    client_max_body_size 50M;

    location / {
        satisfy any;

        auth_basic "off";

        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
        # My react server
        proxy_pass http://localhost:3000/; 
    }

    location /api/ {
        # request limit
        limit_req zone=mylimit;
        # connection limit
        limit_conn addr 10;

        # need to satisfy any condition to pass
        satisfy any;

        # white-list ips
        allow localhost;
        allow 127.0.0.1;

        # deny any other ip
        deny all;

        # basic authentication
        auth_basic "Restricted Area";
        auth_basic_user_file /etc/apache2/.htpasswd;

        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
        # My api server
        proxy_pass http://localhost:4000/;
        sub_filter /api/ /;
    }
}

0 个答案:

没有答案