「Apache」の版間の差分
Mitsuhiro Yoshida (トーク | 投稿記録) |
Mitsuhiro Yoshida (トーク | 投稿記録) (Done!) |
||
(同じ利用者による、間の18版が非表示) | |||
1行目: | 1行目: | ||
'''Apache'''に関して言及される場合、ほとんどの人は「Apache HTTPサーバプロジェクト」のことを考えます。実際、Apacheは多くのプロジェクトを運営する「Apacheソフトウェア財団」を指し、良く知られているにもかかわらず、HTTPサーバはそのプロジェクトのひとつでしかありません。 | '''Apache'''に関して言及される場合、ほとんどの人は「Apache HTTPサーバプロジェクト」のことを考えます。実際、Apacheは多くのプロジェクトを運営する「Apacheソフトウェア財団」を指し、良く知られているにもかかわらず、HTTPサーバはそのプロジェクトのひとつでしかありません。 | ||
25行目: | 23行目: | ||
# mod_expiresをインストールおよび有効化してください - 詳細はドキュメントまたはmanページをご覧ください。 | # mod_expiresをインストールおよび有効化してください - 詳細はドキュメントまたはmanページをご覧ください。 | ||
# | # 次のコードをバーチャルサーバのconfigファイル内にあるrootディレクトリ用<directory>セクションに追加してください (または、AllowOverridesが有効な場合、.htaccessファイル): | ||
<IfModule mod_expires.c> | <IfModule mod_expires.c> | ||
ExpiresActive On | ExpiresActive On | ||
45行目: | 43行目: | ||
'''サーバ''' | '''サーバ''' | ||
Apacheサーバは、新たな子プロセス (小さなサブプログラム) | Apacheサーバは、新たな子プロセス (小さなサブプログラム) を発生させることで、それぞれのコネクションを処理します。実行およびリザーブのため、あなたが許可するこれらの数値は、あなたのサーバがいかに速く動作するかという点に関して、大きなインパクトを与えます。リスク (特にVPSのような、小さなメモリを搭載したサーバ ) は、利用可能なRAMを使い果たしてしまって、システムが、はるかに遅いハードディスクのスワップメモリを代わりに使用することになることです。これを避けるため、あなたはサーバに必要な数値のみ伝えるようにする必要があります。以下、128MBのラム (最大 384までバースト可能) を搭載したVPSサーバの設定ディレクティブです。この設定で、かなり良く動作します (詳細は [http://www.agnivo.com/tech/vps-mysql-and-apache-optimization-guide-27.html こちら]をご覧ください)。 | ||
最初に、あなたのhttpd.confをバックアップしてください。一般的に、/etc/httpd/conf/httpd.confで見つけることができます。バックアップした後、ファイルをエディタで開いてください。 例) | |||
nano /etc/httpd/conf/httpd.conf | nano /etc/httpd/conf/httpd.conf | ||
そして、以下の値を探してください。恐らく少しだけ散らばっていると思われます。値を探した後、内容を変更してください: | |||
Timeout 200 | Timeout 200 | ||
64行目: | 62行目: | ||
HostnameLookups Off | HostnameLookups Off | ||
もし、メモリが不足している場合 (Linuxを使用している場合、次のコマンドで | |||
top | top | ||
スワップの値を確認してください)、いくつかの値を減らしてください。同様に、あなたがメモリを余分に持っている場合、少しだけ増やしても良いと思います。Apacheと同時にデータベースソフトウェアも忘れずにチューニングしてください。 | |||
==SSL== | ==SSL== | ||
あなたのウェブサイトへの不正侵入を防ぎたい場合、データの送信中に悪意を持った第三者にMoodleパスワードを盗み読みされないよう、SSLを有効にしてください (一般的なインターネットコミュニケーションは盗み読みすることができますが)。SSLを有効にするには、2つのオプションがあります - 自己署名証明書を作成する (一般的なネットワークの盗み読みは防ぐことができますが、結局のところ十分な努力により侵入されてしまいます)、またはベンダーから証明書を購入する (安いもので年額35USDほどです)。以下、自己署名証明書のインストール方法に関するインストラクションです。 | |||
''' | '''DebianおよびApache2''' | ||
1. | 1. 証明書を作成する: | ||
apache2-ssl-certificate | apache2-ssl-certificate | ||
Debian etch以降、apache2-ssl-certificateは廃止されました。代わりにmake-ssl-certを使用してください: | |||
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem | make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem | ||
2. | 2. /etc/apache2/ports.conf を編集する: | ||
Listen 80 | Listen 80 | ||
Listen 443 | Listen 443 | ||
3. | 3. /etc/apache2/sites-available/defaultを/etc/apache2/sites-available/default-sslにコピーした後、/etc/apache2/sites-available/defaultを変更する: | ||
NameVirtualHost *:80 | NameVirtualHost *:80 | ||
<VirtualHost *:80> | <VirtualHost *:80> | ||
91行目: | 89行目: | ||
</VirtualHost> | </VirtualHost> | ||
同時に、/etc/apache2/sites-available/default-sslを変更する: | |||
NameVirtualHost *:443 | NameVirtualHost *:443 | ||
<VirtualHost *:443> | <VirtualHost *:443> | ||
99行目: | 97行目: | ||
... | ... | ||
</VirtualHost> | </VirtualHost> | ||
4. | 4. sslファイルにシンボリックリンクを貼る: | ||
a2ensite default-ssl | a2ensite default-ssl | ||
5. | 5. 忘れずにsslモジュールにもシンボリックリンクを貼る: | ||
a2enmod ssl | a2enmod ssl | ||
6. | 6. Apacheを再起動して、接続を確認する (例 https://localhost/): | ||
/etc/init.d/apache2 restart | /etc/init.d/apache2 restart | ||
[http://edin.no-ip.com/html/?q=ssl_apache2_2_virtualhost_debian_automatically_https_forwarding | [http://edin.no-ip.com/html/?q=ssl_apache2_2_virtualhost_debian_automatically_https_forwarding 参考資料] | ||
== 関連情報 == | == 関連情報 == | ||
* [http://httpd.apache.org/ The Apache | * [http://httpd.apache.org/ The Apache HTTPサーバプロジェクト] - 英語 | ||
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server | * [http://en.wikipedia.org/wiki/Apache_HTTP_Server Apache HTTPサーバに関するWikipediaの記事] - 英語 | ||
* [http://httpd.apache.org/docs/2.0/misc/perf-tuning.html 公式ウェブサイトのApacheパフォーマンスチューニング記事] - 英語 | |||
[[Category:管理者]] | [[Category:管理者]] |
2008年6月27日 (金) 15:51時点における版
Apacheに関して言及される場合、ほとんどの人は「Apache HTTPサーバプロジェクト」のことを考えます。実際、Apacheは多くのプロジェクトを運営する「Apacheソフトウェア財団」を指し、良く知られているにもかかわらず、HTTPサーバはそのプロジェクトのひとつでしかありません。
Apache HTTPサーバでは、ウェブページをインターネット上 (またはイントラネット、単体のテストマシン上) に公開することができます。Moodelの開発に使用されているPHPスクリプト言語は、 Apache HTTPサーバに堅く統合されています。Moodleのインストールにおいて、ウェブサーバは必須の構成要素です。Apache HTTPサーバには、バージョン1およびバージョン2の異なる2つのバージョンがあります。バージョン2はバージョン1に置き換えられるべきだったのですが、アーキテクチャが大幅に異なるため、バージョン1も継続してサポートされています。両者ともPHPおよびMoodleでサポートされます。
Apache HTTPサーバプロジェクトは、以下のように説明されています:
「Apache HTTPサーバプロジェクトは、 UNIXおよびWindows NTを含む、最新オペレーティングシステムのためのオープンソースHTTPサーバを開発および保守する取り組みです。プロジェクトのゴールは、最新のHTTP標準に準拠した、安全で効率の高い拡張可能なサーバを提供することです。
1996年より、Apacheは最も人気のあるウェブサーバです。2005年11月、Netcraft Web Server Surveyの調査では、インターネット上の70%のウェブサーバがApacheを使用していることが分かりました。このように、Apacheは他の全てのウェブサーバを合わせた数より、さらに幅広く使用されています。」
Apacheのインストール
通常、ApacheはPHPおよびMySQLと共にインストールされ、この組み合わせはAMPとして知られています。詳細は、AMPのインストールをご覧ください。
Debian/Ubuntu:
apt-get install apache2
パフォーマンス
キャッシング
Apacheでは、イメージのような各種ページ要素をローカルメモリでキャッシュして、ページがリクエストされるたびにApacheに要求しないようブラウザに指示することができます。この設定をどのようにするかOS間で若干異なりますが、以下2つの基本的なステップがあります:
- mod_expiresをインストールおよび有効化してください - 詳細はドキュメントまたはmanページをご覧ください。
- 次のコードをバーチャルサーバのconfigファイル内にあるrootディレクトリ用<directory>セクションに追加してください (または、AllowOverridesが有効な場合、.htaccessファイル):
<IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 seconds" ExpiresByType text/html "access plus 1 seconds" ExpiresByType image/gif "access plus 1 week" ExpiresByType image/jpeg "access plus 1 week" ExpiresByType image/png "access plus 1 week" ExpiresByType text/css "access plus 1 week" ExpiresByType text/javascript "access plus 1 week" ExpiresByType application/x-javascript "access plus 1 week" ExpiresByType text/xml "access plus 1 seconds" </IfModule>
この設定の効果は、動的に変わるHTMLおよびXMLを除いて、すべてをキャッシュに保持します。このようにして、ロードタイムを大幅に減らすことが可能です。どのくらいの頻度であなたのイメージが変更されるか等を考慮しながら、キャッシュタイムを調整してください。
詳細は次のサイトをご覧ください: www.metaskills.net
サーバ
Apacheサーバは、新たな子プロセス (小さなサブプログラム) を発生させることで、それぞれのコネクションを処理します。実行およびリザーブのため、あなたが許可するこれらの数値は、あなたのサーバがいかに速く動作するかという点に関して、大きなインパクトを与えます。リスク (特にVPSのような、小さなメモリを搭載したサーバ ) は、利用可能なRAMを使い果たしてしまって、システムが、はるかに遅いハードディスクのスワップメモリを代わりに使用することになることです。これを避けるため、あなたはサーバに必要な数値のみ伝えるようにする必要があります。以下、128MBのラム (最大 384までバースト可能) を搭載したVPSサーバの設定ディレクティブです。この設定で、かなり良く動作します (詳細は こちらをご覧ください)。
最初に、あなたのhttpd.confをバックアップしてください。一般的に、/etc/httpd/conf/httpd.confで見つけることができます。バックアップした後、ファイルをエディタで開いてください。 例)
nano /etc/httpd/conf/httpd.conf
そして、以下の値を探してください。恐らく少しだけ散らばっていると思われます。値を探した後、内容を変更してください:
Timeout 200 KeepAlive On MaxKeepAliveRequests 200 KeepAliveTimeout 3 MinSpareServers 5 MaxSpareServers 15 StartServers 5 MaxClients 20 MaxRequestsPerChild 2000 HostnameLookups Off
もし、メモリが不足している場合 (Linuxを使用している場合、次のコマンドで
top
スワップの値を確認してください)、いくつかの値を減らしてください。同様に、あなたがメモリを余分に持っている場合、少しだけ増やしても良いと思います。Apacheと同時にデータベースソフトウェアも忘れずにチューニングしてください。
SSL
あなたのウェブサイトへの不正侵入を防ぎたい場合、データの送信中に悪意を持った第三者にMoodleパスワードを盗み読みされないよう、SSLを有効にしてください (一般的なインターネットコミュニケーションは盗み読みすることができますが)。SSLを有効にするには、2つのオプションがあります - 自己署名証明書を作成する (一般的なネットワークの盗み読みは防ぐことができますが、結局のところ十分な努力により侵入されてしまいます)、またはベンダーから証明書を購入する (安いもので年額35USDほどです)。以下、自己署名証明書のインストール方法に関するインストラクションです。
DebianおよびApache2
1. 証明書を作成する:
apache2-ssl-certificate
Debian etch以降、apache2-ssl-certificateは廃止されました。代わりにmake-ssl-certを使用してください:
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
2. /etc/apache2/ports.conf を編集する:
Listen 80 Listen 443
3. /etc/apache2/sites-available/defaultを/etc/apache2/sites-available/default-sslにコピーした後、/etc/apache2/sites-available/defaultを変更する:
NameVirtualHost *:80 <VirtualHost *:80> ... </VirtualHost>
同時に、/etc/apache2/sites-available/default-sslを変更する:
NameVirtualHost *:443 <VirtualHost *:443> ... SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem ... </VirtualHost>
4. sslファイルにシンボリックリンクを貼る:
a2ensite default-ssl
5. 忘れずにsslモジュールにもシンボリックリンクを貼る:
a2enmod ssl
6. Apacheを再起動して、接続を確認する (例 https://localhost/):
/etc/init.d/apache2 restart