質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Amazon CloudFront

Amazon CloudFrontは、AWSの高速且つ高パフォーマンスなコンテンツ配信(CDN) サービス。容量の大きいコンテンツをキャッシュさせてWebサーバの負荷を軽減し、サーバダウンの防止など安定した配信が可能になります。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Amazon Route 53

Amazon Route 53 はAmazonが提供する、 可用性と拡張性に優れた ドメインネームシステム(DNS)サービスです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

3回答

1940閲覧

複数のサブドメインから同じドキュメントルートのWebコンテンツを使用したい

sujico.net

総合スコア453

Amazon CloudFront

Amazon CloudFrontは、AWSの高速且つ高パフォーマンスなコンテンツ配信(CDN) サービス。容量の大きいコンテンツをキャッシュさせてWebサーバの負荷を軽減し、サーバダウンの防止など安定した配信が可能になります。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Amazon Route 53

Amazon Route 53 はAmazonが提供する、 可用性と拡張性に優れた ドメインネームシステム(DNS)サービスです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

1グッド

1クリップ

投稿2018/10/19 06:55

編集2018/10/23 04:46

#実現したいこと
取得済みのドメイン"example.com"にサブドメインを2つ("www1"、"www2")を設定し、
example.com、www1.example.com、www2.example.comの3ドメインのアクセスに対応したい

#困っていること
Amazon Route53の設定を行い、それぞれのドメインの名前解決が出来る状態になっています。
ただ、いざブラウザからアクセスしようとすると

http://example.com の場合はWebコンテンツが表示され、
http://www1.example.comとhttp://www2.example.comでは404エラー(NotFound)が返ってしまいます。

VirtualHostを使用しており、virtualhostの設定ファイルも作成しています。(仮にvhost.confとします)
ただ、負荷分散の為にDocumentRootは3ドメイン同じパスを指定したいのですが、これは可能なのでしょうか?

vhost.confやApacheの設定ファイル(httpd.conf)で色々書き換えを試していますが、
404エラーのまま変わらないので恐らく的外れな検証をしているのかもしれません。

#解決したいこと
http://www1.example.comとhttp://www2.example.comでの404エラーを解消したいです。
また、3つのドメイン全てに同じDocumentRootのWebコンテンツを指定したいです。
そして、これらが実現しない原因を突き止めたいです。

#vhost.conf

NameVirtualHost *:80 <VirtualHost *:80> ServerName example.com ServerAlias xxxxxxxxx.cloudfront.net VirtualDocumentRoot /var/www/html/example.com/public_html/ </VirtualHost> <VirtualHost *:80> ServerName www1.example.com ServerAlias yyyyyyyyy.cloudfront.net VirtualDocumentRoot /var/www/html/example.com/public_html/ </VirtualHost> <VirtualHost *:80> ServerName www2.example.com ServerAlias zzzzzzzzz.cloudfront.net VirtualDocumentRoot /var/www/html/example.com/public_html/ </VirtualHost>

※httpd.confでServerNameはコメントアウト済です
※CloudFrontが別なので3つに分けています

現在何が原因でエラーが発生しているのか、
特定出来ていない状況です。

現在も当方で調査中なのですが、現状まだ見当がついていない状態です。
もし「これが原因では?」等お心当たりがあるかたがいらっしゃいましたら、
何卒ご教示頂けますと幸いです。

恐縮ですが、何卒宜しくお願い致します。


また、不足する情報がございましたら、
可能な範囲内で追記させて頂きます。

#追記
初歩的な部分が確認できていないようですので、初心者マークをつけさせていただきました。

###検証結果
・VirtualDocumentRootをDocumentRootに変更 → 効果はありませんでした
・DocumentRootを別々のパスに変更しました → 効果はありませんでした
・CloudFrontのOriginの先頭一文字が大文字と小文字で差異があったため、揃えました → 効果なし
・アクセス可能なドメインとそうではないドメインでは、ログに差があります。
アクセス不可能なドメインの方ではNot Found時にアクセスログがありません
メッセージも「Apache/2.x.xx (Amazon) Server at testalb.xxxx.elb.amazonaws.com Port 80」とあります。
(アクセス可能なほうでは「Apache/2.x.xx (Amazon) Server at example.com Port 80」とあります)

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukky1201

2018/10/19 07:30

各URLへアクセスしたときのaccessログとerrorログを提示ください。www1.example.comにアクセスしたときに/var/www/html/example.com/public_html/ディレクトリを参照できているか?など確認できます
sujico.net

2018/10/19 07:45

エラーログとアクセスログの状況を追記いたしました。何かエラーログが常に出ているのが引っかかります…。
guest

回答3

0

自己解決

CloudFrontでHostヘッダが転送されていない状況だったのが原因
ビヘイビアからHostヘッダを転送する設定に変更を加えたところ、接続可能となった

Based on Selected Request Headers → All

投稿2018/10/23 04:45

編集2018/10/23 04:46
sujico.net

総合スコア453

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まず、そのサブドメインでIPを引いてみて、ドメインと同じものかをチェックしてみましょう

そして、
.htaccess とかで、ドメイン以外のアクセスを拒否してるとかはないでしょうか。

投稿2018/10/19 07:13

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sujico.net

2018/10/19 07:15

なるほど、ご回答いただきありがとうございます。 さっそく確認してみたいと思います。
sujico.net

2018/10/19 07:25

> サブドメインでIPを引いてみて、ドメインと同じものか サーバの前にキャッシュサーバ(Amazon CloudFront)を配置している為、 外部アクセスの場合IPアドレスは異なりますがドメインとキャッシュサーバは一致しています。 (という確認で合っておりますでしょうか?) .htaccessに関しては、ファイルが存在しませんでした。
y_waiwai

2018/10/19 07:28

それらのIPアドレスで見てみたらどうなります?
sujico.net

2018/10/19 07:32

キャッシュサーバのIPアドレスで確認してみたところ、 403エラーが返ってきました。 -- 403 ERROR The request could not be satisfied. Bad request. Generated by cloudfront (CloudFront) Request ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
guest

0

VirtualHostを分けるのであれば
VirtualDocumentRootDocumentRootにするのが正しいような。

今回のケースでは関係なかったので取り消し。

投稿2018/10/19 07:11

編集2018/10/19 07:37
tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sujico.net

2018/10/19 07:14 編集

ご回答いただきありがとうございます。 わたしもhttps://www.softel.co.jp/blogs/tech/archives/2189 こちらを先ほど見て 確かにVirtualDocumentRootはおかしいと思い修正しました。 今回の問題の解決に直結する訳ではありませんが、こういうのは正しく書かないといけませんよね ご指摘いただきありがとうございます。
tanat

2018/10/19 07:24

確かに、%0を使っていないのであんまり関係なかったですね。すみません。 アクセスログを見て、実際にアクセスがあるか、ある場合どのパスを見て404を返しているか確認してみて下さい。
sujico.net

2018/10/19 07:27

とんでもございません。 むしろ%0を使用していないのにVirtualDocumentRootを使用していたこと自体が不適切でしたので、ありがたいご指摘でした。 なるほど、アクセスログを見れば実際にどのパスを見に行っているかが分かるのですね。 初歩的で申し訳ありません、早速確認してみます。
sujico.net

2018/10/22 03:04 編集

>アクセスログを見て、実際にアクセスがあるか、ある場合どのパスを見て404を返しているか確認してみて下さい。 www1とwww2においては、アクセス時にaccess_logもerror_logもなかったので、 到達していない可能性があるかも知れないことが分かりました。 また、 アクセス可能なドメインの方でのブラウザ上での404メッセージは、 Apache/2.x.xx (Amazon) Server at example.com Port 80  ですが、 アクセス出来ないほうでのブラウザ上でのメッセージは Apache/2.x.xx (Amazon) Server at testalb.xxxx.elb.amazonaws.com Port 80 でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問