使用https协议的nginx proxy_pass导致"无效的URL前缀"错误

时间:2016-10-03 22:09:58

标签: heroku nginx dokku x-accel-redirect

我在dokku上运行nginx后面的php应用程序。我有一个带有proxy_pass指令的位置,如下所示:

location ~* ^/cdn/(.*?)/(.*) {
  resolver 8.8.8.8;
  proxy_set_header HOST $1;
  proxy_pass https://$1/$2?$args;
}

我想使用此位置从S3重定向文件。

在错误日志中,我有以下错误:

2016/10/03 21:56:46 [error] 251#0: *11 invalid URL prefix 
  in "https://s3-us-west-1.amazonaws.com/powr/defaults/image-slider2.jpg?", 
  client: 172.17.0.1, server: localhost, 
  request: "GET /cdn/s3-us-west-1.amazonaws.com/powr/defaults/image-slider2.jpg HTTP/1.1"

如果我更改 https:// 并使用 http:// ,那么一切运作良好。

任何提示都表示赞赏。

2 个答案:

答案 0 :(得分:0)

如果您从proxy_pass的主机部分删除变量,它将有效。我希望它会有所帮助。

答案 1 :(得分:0)

检查您的nginx配置,确保您具有ngx_http_ssl_module

cd /usr/sbin/
./nginx -V

应显示

启用了TLS SNI支持