Linux 从Nginx HTTP基本身份验证中排除API路由

Linux 从Nginx HTTP基本身份验证中排除API路由,linux,ubuntu,nginx,nginx-config,Linux,Ubuntu,Nginx,Nginx Config,我试图从Nginx HTTP基本身份验证中排除API路由“” 这是我的Nginx配置: server { listen 80; listen [::]:80; server_name example.com; return 302 https://$server_name$request_uri; } server { # SSL configuration listen 443 ssl http2; listen [::]:443

我试图从Nginx HTTP基本身份验证中排除API路由“”

这是我的Nginx配置:

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    return 302 https://$server_name$request_uri;
}

server {

    # SSL configuration

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate         /etc/nginx/ssl/cert.crt;
    ssl_certificate_key     /etc/nginx/ssl/key.pem;
    ssl_client_certificate  /etc/nginx/ssl/cloudflare.crt;
    ssl_verify_client on;

    server_name example.com;
    root /var/www/mysite;

    index app.php index.php;

    location / {
        try_files $uri $uri/ /app.php$is_args$args;

        # Restricting Access
        auth_basic 'Administrator Area';
        auth_basic_user_file /etc/apache2/.htpasswd;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }

    # Restriction off for api
    location ^~ /api/ {        
        auth_basic off;
        allow all;
    }

}
但当我尝试在浏览器上点击“”时,它仍然要求进行基本身份验证。通常,在没有基本身份验证的情况下,它应该在浏览器上提供JSON响应


有人知道如何解决这个问题吗?任何形式的帮助都将不胜感激。谢谢。

您是否使用
nginx-s reload
重新加载了nginx配置?是的。谢谢。您是否使用
nginx-s reload
重新加载了nginx配置?是的。谢谢