linux - 从 Nginx HTTP 基本身份验证中排除 API 路由
问题描述
我正在尝试从 Nginx HTTP 基本身份验证中排除 API 路由“ https://example.com/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;
}
}
但是当我尝试在浏览器上点击“ https://example.com/api/ ”时,它仍然要求进行基本身份验证。通常,如果没有基本身份验证,它应该在浏览器上提供 JSON 响应。
有谁知道如何解决这个问题?任何形式的帮助将不胜感激。谢谢。
解决方案
推荐阅读
- java - 可以将 http/rest 合同与 amqp 结合起来吗?
- forms - 如何在一个控制器中集成多个表单->提交时出错-Symfony 4.*
- python - 如何使用scrapy从imdb获取“Production Co”?
- python - 使用python根据文本中的主题提取子文本(数据清洗/提取/处理)
- java - 将新元素合并到 xml 文件并按年份分组
- android - 即使进行第二次订阅,也只会发出一次的冷可观察对象
- jmeter - 如何在 OpenShift 中为 JMeter 客户端公开 2 个端口
- javascript - 如何从Javascript中的多维数组中找到与当前日期最接近的日期
- node.js - Cloudflare worker 生成 smime 签名
- java - 图像上的camera2 api水印