[英]Nginx proxy_pass to dynamic host
目前,我已经设置了一个PHP脚本,其中包含一大块代码,这些代码从动态位置(来自数据库)读取文件,并以块的形式回显给用户。 它基本上是一个文件流脚本来隐藏原始文件的位置。
但是,这会带来很大的开销,因为PHP会在每次下载时堵塞我的服务器进程。 相反,我想使用nginx,我想知道是否可以动态地将proxy_pass
指令设置为我的数据库中的值。
例如,如果我的网站在http://example.com/download?hash=abcd
上有一个页面,我需要从我的MySQL数据库中查找哈希abcd
的下载URL,然后使用nginx和proxy_pass
提供该文件。
有谁知道我怎么能做到这一点?
您无法从nginx直接连接到mysql,但您可以添加代理的位置
location ~ /proxy/(?<domain>[^/]*)(?<url>/.*) {
internal;
proxy_pass http://$domain$url;
}
并在您的应用程序中使用X-Accel-redirect头,它将连接到数据库,通过哈希获取下载URL并设置为“X-Accel-Redirect:http: //your.domain.com/proxy/other.domain.com /path/to/file.txt “。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.