web-dev-qa-db-ja.com

ローカルホスト上のApache経由で仮想ホストにアクセスできません

髪を抜くようになりました。

Redhat/Apacheを使用して、3つのDrupalベースのドメインにサービスを提供するように設定された3つの仮想ホストと、すべて1台のマシンから乗客を介してRedmineにサービスを提供するように設定された4番目の仮想ホストがあります。

この設定はすべてのトラフィックに適しています。すべてのネットワークアドレスで4つのドメインすべてを解決できます。ネットワークインフラストラクチャにより、問題のボックスはプロキシを使用して外の世界を確認します。

ローカルマシンのスクリプトからRedmineAPIにアクセスしようとしましたが、応答はエラーです。

While trying to retrieve the URL: http://projects/users.xml 

The following error was encountered: 

Unable to determine IP address from Host name for projects 
The dnsserver returned: 

Name Error: The domain name does not exist. 
This means that: 

 The cache was not able to resolve the hostname presented in the URL. 
 Check if the address is correct. 

外部マシンからAPIにアクセスすると、期待される応答が得られるため、APIにアクセスできます。これは、ApacheまたはPHPからの仮想ホストドメインの解決に関する問題にすぎないと私は信じています。自体。

これはプロキシの問題である可能性があり、使用されているプロキシはローカルネットワークDNSを認識していないという知識に基づいた推測をしましたが、Apacheがチェックするためにプロキシをオフにする方法がわかりません。このサーバーをセットアップし、一般的にプロキシ要件に精通していない。

これがプロキシの問題であるかどうかを確認できる場合、特定のドメインに対して例外を作成するにはどうすればよいですか? NO_PROXY環境変数を使用する必要があると思いますが、Apacheユーザーに対してこれを行う方法がわかりません。さらに重要なことに、ApacheユーザーのENV変数をダンプしてもHTTP_PROXY値が表示されません。すべてなので、Apacheは他の場所でプロキシ構成を使用していると思います。

明らかな何かが欠けていますか?

EDIT:要求に応じて、ドメインのnslookupは次を返します。

$ nslookup projects
Server:         10.11.6.31
Address:        10.11.6.31#53

Name:   projects.INNSERVE.LOCAL
Address: 10.11.6.48

編集2:要求に応じて、問題のURLのwget結果:

$ wget projects/users.xml
--2012-12-22 19:12:51--  http://projects/users.xml
Resolving projects... 10.11.6.48
Connecting to projects|10.11.6.48|:80... connected.
HTTP request sent, awaiting response... 401 Authorization Required
Authorization failed.
2
kieran_delaney

必死になって、ApacheWebサーバーのhostsファイルを再定義することで問題を解決することができました。以前は、Webminを使用してこれらを設定していました(ほとんどの場合、乗客を介してRedmineのインストールを提供するためにプロジェクトホストエントリを手動で作成しました)。

問題は次のとおりです。

プロジェクトは、ポート番号を持つ仮想ホストとして定義されました。

<VirtualHost our.ip.address:80>
DocumentRoot /opt/redmine-2.1.2/public
ServerName projects
...

他のすべての仮想ホストは、ポート番号に明示的にラベルを付けずに定義されています。

<VirtualHost our.ip.address>
    DocumentRoot /var/www
    ServerName address.domain.local
    ServerAlias address

これは、Apacheが独自の仮想ホストを解決する以外のすべての点で正常に機能しました。

残りの仮想ホストを変更してポート番号を含めると、これが修正されたようです(ここでは関係のないさまざまな理由で複数のポート番号を使用するため、ポート番号は重要です)。

0
kieran_delaney

私は次のいずれかを試してみます:

追加

domain example.com
search example.com

/etc/resolv.confへ

または追加

11.22.33.44    projects.example.com projects

/ etc/hostsへ

これらのいずれかがDNSの問題を解決する可能性があります。

2
user130370