2

私はnginxが初めてで、リダイレクトの問題を理解しようとしています。Web アプリケーションを実行しているホストから別のドメインに Web サイトをリダイレクトしようとしています。その部分は私がやったが、それを隠したいと思っている. リダイレクトするときに、別のドメインに移動したことをユーザーに知られたくありません。

クライアントのプライバシーのためにドメイン名を置き換えました。しかし、それらは、sub.test.com にある Web アプリケーションを実行している test.com の Linode 上にあります。私が望むのは、test.com にアクセスするすべてのユーザーが、ドメインを公開せずに、other.com でホストされている一時的なサイトにリダイレクトされることだけです。

以前、誰かがその方法を教えてくれましたが、それはずっと前のことであり、参照する情報がありません。誰かが私を助けることができますか?テスト環境のドメインを公開したくありません。

server {
     listen       80;
     server_name  www.test.com test.com www.test.net test.net;

     rewrite      ^ http://other.com/sub redirect;

     location / {
         root     /srv/http/www.test.com;
         index    index.html;
     }
}
4

2 に答える 2

4

redirectではそれを行うことはできません。実際には、リダイレクトはブラウザにどこからページをフェッチするかを伝えるようなものであるため、実際の場所を隠すことはできません。必要なのはプロキシだと思います。たとえば、クライアントがサーバー(test.com)からドキュメントを要求すると、サーバーは他のサーバー(other.com)からドキュメントを取得し、そのドキュメントが生成されたかのようにクライアントに返しますtest.com で - その場合、クライアントはドキュメントが実際にどこから発信されたのかを判断できません。

これは次の方法で実行できます。

server_name test.com;
location / {
    proxy_pass http://other.com;
}
于 2012-11-12T21:43:31.530 に答える