0

NGINX でホストされているダウンロード システムを備えたアプリの開発を終了しました。

http://dashboard.myapp.com

ダウンロード用の URL は次のとおりです。

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

このページは、ユーザー入力を必要とする通常の PHP ページであり、PHP が実際のファイルのダウンロードを処理します。ファイルの直接パスではありません。

これらのダウンロード URL は公開されるため、ダッシュボードのサブドメインは削除したいと考えています。

デフォルト ドメイン (myapp.com) は、次のようにワードプレスのセットアップで既に機能しています。

    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.comNginx.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 に答える