0

タスクがあります。すべてのビジネス ロジスティックを備えたアプリケーションをホストするメイン サーバーがあります。

ファイルストレージとして機能する他のサーバー(将来的にはクラウドになる可能性があります)があります。

ユーザーはどのようにしてファイルを取得できますか? (ただし、アクセスできる人のみ)。

私の考え:

ServerMain では、Nginx (プロキシとして) + Apache を使用します。最初のユーザーは、Nginx Nginx プロキシから Apache にリクエストを送信します。Apache はファイルへのアクセスをチェックします。許可されている場合、Apache は別のサーバーにリダイレクトを返します (コンテンツへのパスを含む)。拒否された場合、Apache は拒否された応答を返します。

そのため、ユーザーは他のサーバーへのリンクを見ることができません。

しかし、それは私にとってはうまくいきません。ユーザーはリダイレクト URL を見ることができます。

私のパラメーター: Nginx はポート 80 で動作し、Apache はポート 8080 で動作します

nginx 構成ホスト

server {

        listen  127.0.0.1:80;
        server_name ap-file.loc;


        server_name_in_redirect on;

        location / {
                proxy_pass      http://127.0.0.1:8080/;
                proxy_redirect   off;
                proxy_set_header  Host $host;
                proxy_set_header  X-Real-IP $remote_addr;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
                client_max_body_size 10m;
                proxy_connect_timeout 90;
        }
}

他のサーバーにリダイレクトされた PHP ページのコード

<?php
$newURL = 'http://1.bp.blogspot.com/_16lyaJiGldI/TBekxqet-JI/AAAAAAAAAis/jTGCN4Wfo8Q/s320/smile.jpg';

header('Location: '.$newURL);

そのコードはApacheで機能しました。

私が間違っていることを教えてください。Nginxの設定でしょうか?

4

1 に答える 1