最近の発見
IISをポート80
に戻した状態http://localhost/
で、WHSコンピューターを使用すると、「このWebサイトのセキュリティ証明書に問題があります」という警告ページが表示されます。私はとにかく「続行」場合は、このURLは立ち上がるhttps://localhost/Remote/logon?ReturnUrl=%2fremote
ためのWindows Home Serverの2011リモートWebアクセスのためにusername
とpassword
。今、はっきりとは思い出せませんが、もともとhttp://localhost/
この問題が持ち上がっただけだとは思いません。ただし、これはローカルポートへのアクセス試行に影響を与える可能性があるようです(ポートに関係なく)。
実際の主な問題は何ですか
ああ、ネットワーキングの複雑さ!私を悩ませ続けた1つのことは、2つのサイトが「部分的に」表示され、他のサイトはまったく表示されない理由でした。次に、FirebugのNETトラッキングを実行すると、私の主な問題はISPがDNSプロキシとして機能していることであり、もちろん、テストサイトが見つからないことがわかりました。しかし、www.
(ではないtest.
)アドレスにある2つのサイトが見つかり、それらを提供しているように見えますが、画像はブロックされているため(私はそう思います)、画像ファイルへのアクセスをブロックしているwww.
ため、特定のサイト。
これは、表示されていない画像の謎(ダイレクトlocalhost:8080
コールに期待)と、5つのサイトのうちの特定の2つを「部分的に」見つける際の奇妙な動作を説明しています。
次に、ルーターまたはプロキシファイルを正しく構成して、WHSコンピューターにリダイレクトする方法を理解する必要があります。私は、Wildblue衛星インターネットサービスを利用しています。これは、より高速なサービス接続の圏外にいるためです。彼らは「オプティマイザ」ファイルを持っています(誰でも表示できるかどうかはわかりませんが、そうでない場合は基本的にこのバージョンと同じです)。これを変更してローカルシステムに配置して、私が必要なものですが、そこで何をする必要があるのか正確にはわかりません。
誰かがそのファイルの変更、またはローカルサイトの場合にプロキシへの送信を回避するように私のLinksys E1200ルーターを構成する方法について何か提案がある場合は、それが私の問題を解決するための最初の(そしておそらく最後の)ステップになる可能性があります。
harrymcの推奨に基づく代表的なコード...まだ機能していません
IISポートがに設定されました:90
。
httdp
ファイル:
Listen *:80
ServerName localhost:80
vhosts
ファイル:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
ProxyRequests off
ProxyPass / http://127.0.0.1:90/
ProxyPassReverse / http://127.0.0.1:90/
</virtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
以前のアップデート:私が主な問題であると信じていたもの(副問題である可能性があります)
(IISを実行している)Windows Home Serverに特定のlocalhost URLをポートに転送8080
させ、同じマシンで実行されている(IISではなく)Apacheがリクエストをピックアップしてページを提供するようにするにはどうすればよいですか?
c:\Windows\System32\drivers\etc\hosts
ファイルには、(下記参照)に変更されましたが、私はそれが新しいポートに再ルーティングとは何の関係もありませんと仮定します。IISも、特定のtest.whatever
URL要求をポート80
で取得し、同じポート上の独自のローカルホストにルーティングしていると思います。
リサーチで見つけたサイトのヒントからApplication Request Routingをダウンロードしましたが、それを見て、それが役立つかどうかわかりません(私の希望は、URLベースでポートへの転送を設定することでし8080
た)。私はネットワークウィザードではなく、ウェブデザイナーです。したがって、これらすべてがどのように機能するかは、私にはややわかりにくいものです。
可能な方向性
このリンクに基づいて(以下のerikxivの最初のコメントに基づいてさらに検索した後に見つかりました)IISでURLの書き換えとして次のことを試みました:
送信ルール:
一致:(.*
テストは大丈夫と思われる)
条件:
いずれかに一致...(これらはパターン一致をテストして大丈夫だったようです)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
書き換えアクション:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
しかし、転送はまだないようです!
以下の情報は、上記の新しいリクエストの背景にあるすべての情報です。
背景情報
最近、Windows XPを実行していた古いデスクトップをWindows Home Server(2011)に変更しました。古いコンピュータは、Apacheインストールで実行されているローカルテストサイトのホストでもありました。いくつかの調査を行ったところ、WHSマシンでApacheを実行することは、最初に思ったほど難しくはないことが明らかになりました(多くのサイトでは、WHSとApacheのIISが問題を引き起こすと述べていますが、正しく設定されていれば、まったく問題ないと述べたサイトもあります。 -基本的に、ポートの競合がないことを確認します)。
そこで、WHSコンピューターにWAMP(64ビットバージョン)をインストールし、Apache構成httpd
ファイルの設定を変更してポートでリッスンする8080
ようにしました。これにより、IISとの競合がなくなります。私は仮想ホストファイルをXPコンピュータと同じように設定しましたが、ポートも変更しました。
基本的に、すべてが正常に実行されるように見えた(ただし、更新を参照)、を除いて ...
(元の)問題
ローカルサイトへのページは正常に表示され、すべてのcssとjavascriptは機能していますが、すべての画像ファイルが表示されていません。パス情報は正しいです。右クリックして選択することで確認できますView Image Info
(Firefoxでは...ところで、画像はどのブラウザーにも表示されないため、ブラウザーのバグではありません)。
私が気づいたことは、しかし、ということであるType
画像情報ボックスでは表示されるtext/html
のではなく、PNG Image
またはJPEG Image
そのセクションでは、それはファイルそのものと認識-これは、それがパス(アドレス)の情報を示しており、以下の情報であるなどまたはのType
いずれImage
かBackground
です。
しかし、その事実にもかかわらず、html(実際にはphpで生成されたhtml)内の画像の正しいMIMEタイプ(私は想定)を認識するのではなく、次のように画像(img
要素またはcssのいずれか)を処理しようとしているbackground-image
ようですテキスト、したがって私に何も与えない!しかし、理由はわかりません。mime
ApacheのMIMEタイプを制御ファイルが正しいです。ページには次のヘッダーがあります...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
...しかし、それらは問題の原因ではないはずです(XPで実行している場合も、ライブサイトでも発生しません)。
だから私は考えを求めています:
- MIMEタイプの分析が問題であることは正しいですか(おそらく更新に基づいています)?
- 問題を引き起こしている可能性のある他にどこを見れば、それを修正する方法がありますか?それでもWHS上のIISとの競合が発生する可能性はありますか?これはphpに何かありますか(これはありそうにありません)、そうであれば、何ですか?Apacheの他に何をチェックできますか?
更新された情報(より多くの[関連?]問題がある)
さらにいじくり回して、問題の少なくとも一部がポートへの変更であるように思われるという結論に達しました:8080
。最初に、すべてのサイトにアクセスするときに、すべてがうまくいくとは限らないことに気付きました。私のc:\Windows\System32\drivers\etc\hosts
ファイルには次の表現があります:
127.0.0.1 localhost
127.0.0.1 test.site1.net
127.0.0.1 test.site2.net
127.0.0.1 test.site3.com
127.0.0.1 test.site4.com
127.0.0.1 test.site5.com
そして、私のapache vhosts
ファイルでのこの表現:
NameVirtualHost *:8080
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
</VirtualHost>
これが動作です:site1
とsite4
が表示されていますが、画像はありません。他の3つはまったく表示されませんが、表示されますNetwork Error (dns_unresolved_hostname)
。
ただし、localhost:8080
URL を使用してWHSマシンのvhostsの最初のサイトにアクセスすると、画像が表示され、vhostsファイルの最初にあるサイトも表示されます(これは予期されたものです)。ただし、以前はそうでなかった場合でもそうです(つまりsite2
、最初の位置に移動すると、localhost:8080
呼び出しによって「動作」し始めます)。
私の画像ファイルがURLの構文を介してアクセスすると403
(修正済み、最初は404と言った)エラーを返していることを知っています。また、ファイルがそのエラーを返しているためにtest.site4.com
、画像が表示されてtext/html
いると思われます(そのため、私はそうは思いません)今では画像を見つけることができないのと同じくらいMIMEタイプの問題です)。しかし、奇妙なことに、パスは正しく、画像以外のファイル(javascriptおよびcss)は問題なく表示されます。
だから私の心の中でそれはたぶんポートスイッチが何かに何かのように思え8080
ます。私の今の問題は:
- hostsファイルとvhostsファイルがすべてのサイトを正しく検出しないのはなぜですか(Windows Home Serverで変更する必要のある他のファイルがあります)?
- それが機能するそれらのサイトで、画像が具体的に見つからないのはなぜですか(403エラー、つまり「禁止されています」、Webサイトフォルダー内の他のファイルへのアクセスが許可されている場合は意味がありません)。
localhost:8080
最初の2つの問題に関係なく、アクセスが機能するのはなぜですか?
さらに詳しい情報
ログファイルを投稿するようにリクエストされました。しかし、localhost:8080
「デフォルト」サイトへの直接呼び出しを介してアクセスした場合を除いて、ログが表示されない(表示される)ことに気付きました。
そこで、WAMPサービスをオフにして、URLにアクセスして、WAMPが実行されているときと同じ動作を発見しました。これは、Apacheがドメイン名を取得するのではなく、IISがまだドメイン名を制御していることを示しているようです(誰かがそこで私の想定を確認できますか?)。したがって、問題はWAMPサーバー自体を制御することによるものである可能性があります。