0

我完成了一个应用程序,该应用程序具有一个由 NGINX 托管的下载系统:

http://dashboard.myapp.com

下载地址为:

http://dashboard.myapp.com/download/file-slug

这个页面是一个常规的 PHP 页面,需要一些用户输入,然后 PHP 处理实际的文件下载,它不是文件的直接路径。

由于这些下载 URL 将公开可用,因此我想放弃该仪表板子域。

默认域 (myapp.com) 已经在使用 wordpress 设置:

    location / {
            try_files $uri $uri/ /index.php?q=$uri&$args;
    }

有没有简单的方法来获得:

http://myapp.com/download/file-slug

表现得好像:

http://dashboard.myapp.com/download/file-slug

被访问,没有实际重定向?

4

2 回答 2

1

试试这个 - 将 myapp.com 的服务器块放置在另一个位置块之外的任何位置。将根设置为与dashboard子域相同的根(如果在同一台服务器上)。该脚本会认为自己被冲洗myapp.com而不是dashboard.myapp.com,但它应该保留框架规则的其余部分。如果这不起作用,请尝试下一个选项。

location /download/file-slug { 
    root /path/folder;  
    try_files  $uri $uri/ /index.php?q=$uri&$args;
}

另一种选择是通过 Nginx 代理。此选项实际上在当前位置运行脚本,就像客户端通过dashboard.myapp.com. 请参阅Nginx.org上的proxy_pass文档。

location /download/file-slug { proxy_pass http://dashboard.myapp.com/download/file-slug; }
于 2014-03-19T22:22:44.750 回答
0

我只能用 Nginx 解决它。

在 myapp.com 配置文件中,我添加了:

    location ~ /download/(.*) {
            resolver 8.8.8.8; 
            proxy_pass http://dashboard.myapp.com/download/$1;
    }

解析器 8.8.8.8 实际上使用的是 Google DNS。如果没有这一行,我会收到“没有定义解析器来解析”错误。

于 2014-03-19T23:01:29.070 回答