web-dev-qa-db-ja.com

ポート80を迂回してApacheでhttpsに自動リダイレクトする最もシームレスな方法

ホームサーバーを使用しており、ISPがポート80をブロックしています。他の開いているポート(443や8080など)をサーバーにリダイレクトできるように、ルーターにDD-WRTをセットアップしています。また、NameCheapを介して自動的に更新されるAレコードに動的DNSをセットアップしています。

私の最終目標はこれです。ユーザーはhttp:/dev.homeserver.comにアクセスし、アドレスバーにカスタムポートなしで自動的に https://dev.homeserver.com を取得します。暗号化が重要であり、httpsはどこにでもあるべきだと思うので、httpsに自動リダイレクトしたい。さらに、http:/homeserver.comを https://homeserver.com およびhttp:/homserver.com/blah/this/indexなどのすべてのリクエストにリダイレクトできるようにしたいと思います。 php? httpに自動リダイレクトされるs://homserver.com/blah/this/index.php?など.

問題は、私たちのドメイン(たとえば、dev.homeserver.com)を介してユーザーをサーバーに送信するために、サーバーに到達するために80以外のポートにリダイレクトする必要があることです。現在、Host devを取得し、http:/dev.homeserver.com:8080にリダイレクトする名前の安いURLリダイレクトを使用してこれを行っています。これは機能しますが、問題はURLにポートが表示されることです。これは避けたいと思います。 URLマスキングを有効にすることはできますが、アドレスバーには常にdev.homeserver.comと表示され、私と同僚はPHPとコーディングをテストするときに通常はアディバーからコピーするので迷惑です。

No-ipにはPort 80 Redirect:と呼ばれる方法でこれを行う方法がありますが、IPに転送されて失われるように見えますサイトが応答するとすぐに、アドレスバーのDNS名。

また、ポート80を開いたVPSがあり、ProxyPassを少し読みましたが、ホームサーバーとVPSの間に依存関係が作成されないようにします。それでも、これが唯一の方法である場合、これがオプションになり得るかどうかを聞きたいです。

(現在の評判でURLを投稿できないので、リンク内の1つを削除する必要がありました)

1
montag

実際、これは多くのハッキングと試行錯誤によって間違いなく可能(そして完全に無料)でした。私はVPSでリバースプロキシを立ち上げましたが、うまくいきましたが、VPSで作成された依存関係が稼働していることはまだ好きではありませんでした(私が持っている2つのサーバーはまったく無関係なことをしているため)。

最初にCloudFlareとその高度なURL書き換えエンジンを試しましたが、URLリクエストを80()httpから443(HTTPS)に書き換えることができました。問題は、ポート80でAレコードと通信しようとすることです( https://www.lowendtalk.com/discussion/50106/cloudflare-proxy-Origin-other-than-port-8 を参照) =)。また、CloudFlareの無料バージョンでは、合計5つの高度なDNSオプションのみが付与されます。私には約8つのサブドメインがあるので、これも機能しません。

私はたまたまNamecheapドメインをいじっていて、DNS設定がURL書き換えを提供していることに気づいたので、sub.example.comを https://sub.example.com にリダイレクトしようとしました。 dynu.comとafraid.comで発生したエラーメッセージがすぐに表示されませんでした。それらはこの設定を保存させません。実際、恐れるのは、Aレコード(またはCNAMEレコード)が技術的に書き換えられるURLに対して曖昧であるため、「無限ループ」を作成するため、不可能だということです。

Namecheapを使用して何か(特別なA +ダイナミックレコードですか?)を使用すると、この種のリダイレクトを行うことができます。これについて言及しているドキュメントは見つかりませんでした。興味深いのは、DNSレコードへのtracerouteで何も得られないことです。DNS名をpingすると、サーバーIPが得られず、NamecheapサーバーIPが得られるため、何らかの逆でなければなりません。彼らの側のプロキシ設定。 WoLのような操作を行う場合は、このことに留意してください(別のAレコードが必要です)。これまでのところ、私は問題に遭遇していません。

とにかく、Namecheapは無料のDNS管理サービスを提供しているので、私はそれをつかんでDNS-O-MATICをセットアップし、自宅で完全に機能するサイトをホストしました。これで、訪問者がhttp:/sub.example.com/xyzにアクセスしようとすると、常に完全にシームレスにhttps:/sub.example.com/xyzにリダイレクトされ、URLにポートガベージがありません。ポートはマイナーに見えますが、口頭で誰かにリンクを与えると、ずっと簡単になります。

これがあれば、他の人が私がやったのと同じくらい時間を節約できます。

UPDATE:

Namecheapソリューションは機能しなくなりました。他のDNSプロバイダーのようなAレコード/ URL書き換えの競合のために、この構成を許可しなくなった過去6か月以内に、パッチを適用したか、書き換えルールを変更したと思います。私は希望を捨てました-現時点では、リバースプロキシを実装しないと、CloudFlareが80以外のポートを指定できるようになるまで、無料のソリューションはありません。

namecheapがこれまで使用していたことを実行できる高度なDNSプロバイダーを知っている人がいる場合は、お知らせください

興味がある人には、Azure Web Appsの無料試用版を使用して無料でリバースプロキシを作成する方法に関する興味深い記事がありますが、1日あたり165 MBのクォータがあるようです。それでも、ほとんどの人にとってこれは機能します。この記事へのリンクは、投稿するのに十分な評判がないので、以下のコメントにあります。

1
montag

Cloudflareを使用する場合、 ページルール を使用すると、このようなリダイレクトを設定できます。 [暗号化]タブでSSLを[完全]に設定し、HTTPS経由でもサーバーに接続するようにしてください。

Cloudflare, their [Page Rules

DNSを使用する必要がありますが、この種の処理がはるかに簡単になります。さらに、ホームサーバーのストレスを軽減します。

2
Andrew Lott