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

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

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

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

Amazon EC2

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1718閲覧

Amazon Linux 2 + Apache 2.4 で http2 アクセスできない

lin.ming

総合スコア50

Apache

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

Amazon EC2

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

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/06/18 05:20

編集2020/06/18 05:25

##やりたいこと
Amazon Linux 2 + Apache 2.4.x 環境下で http2 通信をしたい。
##実行環境
Apache 2.4.43
OpenSSL 1.0.2k-fips

/etc/httpd/conf/httpd.conf

<IfModule mod_http2.c> Protocols h2 h2c http/1.1 </IfModule>
$ ls -l /etc/httpd/modules (中略) -rwxr-xr-x 1 root root 248888 Oct 23 2019 mod_http2.so (中略) -rwxr-xr-x 1 root root 62432 Oct 23 2019 mod_proxy_http2.so (中略)

/etc/httpd/conf.d/linming.com.ssl.conf

(中略) Protocols h2 h2c http/1.1

##現時点での Network の結果
Chrome の F12 で Network -> Protocol を見ると、http/1.1 でアクセスしています。
##知りたいこと
どうしたら http2 でアクセスするようになるでしょうか?

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

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

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

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

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

Mashiro

2020/06/18 06:09

httpsでアクセスしてますか?
Mashiro

2020/06/18 06:19

こっちの環境でこのURLにアクセスして確認するとちゃんとh2でアクセスで通信してますよ?
lin.ming

2020/06/18 06:20

あ、ごめんなさい。提示の URL は適当につけたものです。 偶然、実際にあるアドレスだったのですね。 こちら↓でご確認ください。 https://www.bass-world.net/
Mashiro

2020/06/18 06:27

httpd.confのLoadModule でmod_http2.soのロードしてますか? それとVirtualHost *443でProtocols h2 h2c http/1.1のを記載してますか?
lin.ming

2020/06/18 06:34

httpd.conf では Include conf.modules.d/*.conf と書いてあって、 /etc/httpd/conf.modules.d/10-h2.conf には LoadModule http2_module modules/mod_http2.so と書いてあります。 VirtualHost *:443 には Protocols h2 h2c http/1.1 と書いてあります。
Mashiro

2020/06/18 06:39

サーバーでapachectl -V | grep MPMを実行してApacheの動作モードを確認してもらっていいですか?
lin.ming

2020/06/18 06:41

[root@linming conf.d]# apachectl -V | grep MPM Server MPM: prefork です。
guest

回答1

0

ベストアンサー

Apacheの動作モードがpreforkになっているのが原因です。

Apache version 2.4.27 以降では prefork MPM で HTTP/2(mod_http2)は動作しないので、
/etc/httpd/conf.modules.d/00-mpm.conf

# prefork MPM: Implements a non-threaded, pre-forking web server # See: http://httpd.apache.org/docs/2.4/mod/prefork.html #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so ←コメントアウトする # worker MPM: Multi-Processing Module implementing a hybrid # multi-threaded multi-process web server # See: http://httpd.apache.org/docs/2.4/mod/worker.html # LoadModule mpm_worker_module modules/mod_mpm_worker.so ←コメントアウト外す

という風に書き換えて、Apacheを再起動して動作モードを変更してください。

投稿2020/06/18 06:47

Mashiro

総合スコア654

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

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

lin.ming

2020/06/18 06:58

ご回答ありがとうございます。 worker モジュールをアクティブにして h2 通信ができるようになりました。 まだ http/1.1 でアクセスしているファイルがありますが、PC にキャッシュされているものだと考えておきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問