【问题标题】:Nginx: proxy pass with basic http auth and excluding some filesNginx:具有基本 http 身份验证的代理传递并排除某些文件
【发布时间】:2018-11-16 04:47:42
【问题描述】:

我正在尝试从 http auth 中排除一些文件(Drupal 中的 Brightcove 视频上传修复),但我的 nginx 配置无法正常工作:

location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;

location ~* \.(3g2|3gp|asf|avi|dv|flv|f4v|m4v|mov|mp4|mpeg|mpg|mts|m2ts|qt|wmv|jpg|png|jpeg)$ {
    auth_basic off;
    allow all;
}

proxy_set_header Authorization  "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass $ip;
}

Http auth 正在运行,代理通行证正在运行,但我仍然无法上传 Brightcove 视频。另一个带有 apache 的服务器的类似配置工作正常:

AuthType Basic
AuthName "Protected Area"
AuthUserFile /etc/.htpasswd
Require valid-user
SetEnvIf REQUEST_URI \.(3g2|3gp|asf|avi|dv|flv|f4v|m4v|mov|mp4|mpeg|mpg|mts|m2ts|qt|wmv|jpg|png|jpeg)$ allow
AllowOverride All
Order deny,allow
Deny from all
Allow from env=allow
Satisfy any

有人可以帮我解决这个问题吗? 谢谢!

【问题讨论】:

  • 将位置location ~* \.(3g2|3gp|asf|avi|dv|flv|f4v|m4v|mov|mp4|mpeg|mpg|mts|m2ts|qt|wmv|jpg|png|jpeg)$移出根位置,它应该可以工作。
  • 谢谢!它就像一个魅力!

标签: nginx nginx-location


【解决方案1】:

这很好用:

location / {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    proxy_set_header Authorization  "";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass $ip;
}

location ~* \.(3g2|3gp|asf|avi|dv|flv|f4v|m4v|mov|mp4|mpeg|mpg|mts|m2ts|qt|wmv|jpg|png|jpeg)$ {
    auth_basic off;
    allow all;
    proxy_set_header Authorization  "";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass $ip;
}

我之前测试过这个配置,但不知道 Brightcove 视频需要一些时间才能开始播放 :-)

【讨论】:

    猜你喜欢
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 2016-04-24
    相关资源
    最近更新 更多