前提
現在、nginxにてリバースプロキシサーバを開発しています。
基本的には問題なく稼働し、サイトを表示できています。
環境
・awsのec2(linux)
・ipはElasticIPにて指定
質問
リバースプロキシサーバにて特定のサイトを表示した際に、ブロックされるケースがあります。
サイトによってはリバースプロキシサーバであるか否かをipから判別してブロックしていると認識しています。
質問は以下です。
①上記の認識は合っていますでしょうか?
②どのようなipがリバースプロキシサーバとみなされるのでしょうか?ip範囲等、具体的に伺えますと幸いです。
以上、ご回答の程、よろしくお願いいたします。
> リバースプロキシサーバにて特定のサイトを表示した際に、ブロックされるケースがあります。
それは本当に「リバース」プロキシなのですか?
以下を参考に構築していますが、当方の認識が間違っていましたでしょうか?
https://qiita.com/OPySPGcLYpJE0Tc/items/1f4219a51980a75696b5
この構成だと、つなぐ先のサーバは「自分が立てたEC2」の1択です。
それ以外の「特定のサイト」は、どのような形態で表示させているのでしょうか?
実験的に外部サイトを表示したところ、表示可能なサイトと表示不可のサイトがあったので、違いを知りたかったという状況です。
> 実験的に外部サイトを表示したところ
どのように表示させているのですか?
可能性としては「リバースプロキシだけでなく通常のプロキシとしても有効になっている」、あるいは「EC2から外部サイトへアクセスした結果を取得している」などが考えられますが、「リバースプロキシ経由で第三者のサイトを表示させる」という時点でそもそも誤解があるので、何をどうしているか確認しないと何もコメントできません。
/etc/nginx/nginx.confにて下記のように指定しています。
location / {
proxy_pass https:/sample.com/;
}
何のためにそのような設定にしたのでしょうか?
web開発機能のための技術検証中です。
ちょっと企画中の段階なので、詳細はここには書けず・・・。
すみません・・・。
相手のサーバがmasahiroviewさんサイドで管理する(あるいは、このように使うと相手から許可を得ている)サーバでないなら、このような設定をするのはおそらく妥当ではないです。
アドバイスありがとうございます!
想定として、サービスを実際に運用する際には、相手(サーバ管理者)から許可を得た場合のみ表示する想定ですのでご安心ください。
> 相手(サーバ管理者)から許可を得た場合のみ表示する想定ですのでご安心ください。
なら、相手側で受け入れてもらうための設定をすればいいだけで、この質問自体が不要ではないでしょうか?
説明がわかりずらく、失礼しました。
厳密には、サイト所有者の許可を得て私が使うわけでなく、「サイト所有者の許可を経てサイト所有者自身に使っていただく」という想定でした。その際に、私のサーバの知識が不足していると「表示されない理由」が説明できないため、「プロキシを判定している方法」を把握したいという状況です。
サイト所有者に提供する予定なら、サイト所有者に、表示を制限している理由や判定方法を聞いたら解決すると思いますよ。
サイト所有者ではなく、サイト使用者に使わすものではないですか?
ご指摘ありがとうございます。
基本的にはサイト所有者にご利用いただく想定です。
ただ、サービスの運営者として、当方サイドでもある程度仕組みを把握しておきたいと思い、今回質問を投稿させていただいた次第です。
プロキシをはじくということは、どう判断したのでしょうか?
nginxで取得できなかっただけ、そう判断した?
またブロックとは、どのような症状になりますか?404?
サイト所有者の協力がないと解決できないと思います。サイト所有者の協力が得られない理由があるのですか?
例えば、プロキシだからという理由以外に
プロキシだからブロックではなくて、botからアクセスをブロックしたいのでヘッダーのUser-Agentをチェックしてブラウザー以外ブロックしているサイトとかもあります。
glitchなどは、ヘッダーにUser-AgentとAccept-Encodingがないと弾かれます。なぜAccept-Encodingが必須なのかわかりません。
それぞれのサイト関係者に聞かないと、わからないとおもいます。
また、参考先とは構成が違い、リバースプロキシのドメインと対象サイトのドメインが異なるとおもいますが、そこはどう解決するつもりなのですか?
特定のサイトの一例でもあげれないですか?
