我遇到了 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/ /;
}
}