1

これは「ポート 80 のブロック」に関する質問ですが、ちょっと変わった質問かもしれません。私はまだ良い答えを見つけていません。あなたの家で実稼働サーバーを実行することはばかげた考えであることを私は知っているので、それは何よりも学術的です.

自宅で開発サーバー (LAMP) を実行していますが、ISP がポート 80 をブロックしています。ドメインの DNS は、IP とポート番号に「URL リダイレクト」するように設定されています。私のルーターはサーバーへのポート転送を行っており、ポート 8081 でリッスンするように Apache をセットアップしています。

問題は、ドメインにアクセスすると、ブラウザの URL が自分のドメイン名から IP とポート番号に解決され、そのように表示されることです。 たとえば、ブラウザに「www.banana.com」と入力すると、サイトは表示されますが、URL は「12.23.456.11:8081」と表示されます。

これを修正してドメイン名がIPやポート番号にならないようにする方法はありますか?

どうにかApacheのプロキシ機能を利用できませんか?

mod_rewrite を使用して、IP とポート番号をドメイン名に戻していただけますか?

前もって感謝します!

4

1 に答える 1

1

この質問には 3 つの部分があります。まずドメインの問題です。IP アドレスの代わりにドメイン名を使用するには、目的の名前をアドレスにマップできるネーム サーバーが必要です。これはホスト レベルであり、ポート レベルではないため、ドメイン名には、ホストする可能性のあるすべてのポートが含まれます。自宅のインターネット接続を使用している場合 (ブロックされたポートについて話しているため、そうであると思われます)、パブリック IP アドレスが時々変更される可能性があることを考慮する必要があります。ISP から静的 IP の料金を支払う (または要求する) か、IP アドレスの変更に応じてレコードを迅速に更新できる動的 DNS サービスを使用することができます。

ポート番号について。mod_rewrite は URL のパス部分のみを処理します。これは、mod_proxy が必要な内部で異なるポートを使用するためです。mod_proxy を使用した Apache Web サーバーは、必要なパブリック ポート (ポート 80 と仮定) でリッスンするように構成され、mod_proxy は着信要求を受け取り、別のポート (または別のサーバー) の別の Web サーバーに送信します。外部ユーザーにとって、これは目に見えないことです。問題は、ISP がポート 80 でサイトをホストすることを許可しない場合、論理的にポート 80 からのプロキシを許可しないことです。これを回避するのは少し難しくなります。個人的には、Rackspace や Linode などの仮想化サーバーを検討します。ポートの使用と静的 IP に制限のない、オープンなインターネット上で完全に構成可能なサーバーを (比較的少ない費用で) 手に入れることができます。

最後に、質問のタイトルが示唆するクリーンな URL です。これは実際の質問の一部ではなかった可能性がありますが、念のため、 mod_rewrite は、 のようなクリーンな URL をマップ/cars/Toyota/1997して、それらを のようなより醜いリクエストに変換できるスマート モジュールです/cars.php?make=Toyota&year=1997。クリーンな URL は見栄えを良くするだけでなく、Web サイトの進化に合わせてバックグラウンドで Web コードを再編成することを容易にします。

最後にもう1つ、この質問がこれについてコメントすることなく非常に長く続いたことは私にとって驚くべきことですが、この質問は実際にはStackOverflowには適していません。おそらくServerFault.com。幸運を!:)

于 2013-05-13T04:56:53.017 に答える