「Apache」の版間の差分

提供:MoodleDocs
移動先:案内検索
(Done!)
(同じ利用者による、間の18版が非表示)
1行目: 1行目:
作成中です - [[利用者:Mitsuhiro Yoshida|Mitsuhiro Yoshida]] 2007年11月5日 (月) 09:10 (CST)
'''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ファイル):
# 次のコードをバーチャルサーバのconfigファイル内にあるrootディレクトリ用<directory>セクションに追加してください (または、AllowOverridesが有効な場合、.htaccessファイル):
  <IfModule mod_expires.c>
  <IfModule mod_expires.c>
   ExpiresActive On
   ExpiresActive On
45行目: 43行目:
'''サーバ'''
'''サーバ'''


Apacheサーバは、新たな子プロセス (小さなサブプログラム) を発生させることで、それぞれのコネクションを処理します。The number of these that you allow to run and to be kept in reserve has a big impact on how fast your server will run. The risk (especially on a server with a small amount of memory, such as a VPS) is that the available RAM will run out and the system will end up using the far slower hard disk as swap memory instead. To prevent this, you need to tell Apache only to have a certain number. Here is a sample set of configuration directives for a VPS server with 128MB of RAM (with up to 384 burstable), whic apparently works quite well (more info [http://www.agnivo.com/tech/vps-mysql-and-apache-optimization-guide-27.html here])
Apacheサーバは、新たな子プロセス (小さなサブプログラム) を発生させることで、それぞれのコネクションを処理します。実行およびリザーブのため、あなたが許可するこれらの数値は、あなたのサーバがいかに速く動作するかという点に関して、大きなインパクトを与えます。リスク (特にVPSのような、小さなメモリを搭載したサーバ ) は、利用可能なRAMを使い果たしてしまって、システムが、はるかに遅いハードディスクのスワップメモリを代わりに使用することになることです。これを避けるため、あなたはサーバに必要な数値のみ伝えるようにする必要があります。以下、128MBのラム (最大 384までバースト可能) を搭載したVPSサーバの設定ディレクティブです。この設定で、かなり良く動作します (詳細は [http://www.agnivo.com/tech/vps-mysql-and-apache-optimization-guide-27.html こちら]をご覧ください)


Make a back up of your httpd.conf first. It’s generally found at /etc/httpd/conf/httpd.conf, then open the file with your editor e.g.
最初に、あなたのhttpd.confをバックアップしてください。一般的に、/etc/httpd/conf/httpd.confで見つけることができます。バックアップした後、ファイルをエディタで開いてください。 例)


  nano /etc/httpd/conf/httpd.conf
  nano /etc/httpd/conf/httpd.conf


Then look for these values, which may be spread about a little and change them:
そして、以下の値を探してください。恐らく少しだけ散らばっていると思われます。値を探した後、内容を変更してください:


  Timeout 200
  Timeout 200
64行目: 62行目:
  HostnameLookups Off
  HostnameLookups Off


If you find that you are running out of memory (type
もし、メモリが不足している場合  (Linuxを使用している場合、次のコマンドで


  top
  top


if using Linux and look at the swap figure), just lower some of the numbers. Similary, if you have extra memory, you can afford to raise them a bit. Remember to combine tuning of Apache with tuning of your database app.
スワップの値を確認してください)、いくつかの値を減らしてください。同様に、あなたがメモリを余分に持っている場合、少しだけ増やしても良いと思います。Apacheと同時にデータベースソフトウェアも忘れずにチューニングしてください。


==SSL==
==SSL==


If you want your website not to be hackable, you need to enable SSL so that your moodle password cannot be easily read by others as it is transmitted (as normal internet communications normally can be). There are 2 options - generate a self-signed certificate, which stops casual network sniffing, but which can ultimately be compromised with enough effort, or purchase a certificate from a vendor (about $35 per year from the cheap ones). Below are instructions for install of a self-signed certificate.
あなたのウェブサイトへの不正侵入を防ぎたい場合、データの送信中に悪意を持った第三者にMoodleパスワードを盗み読みされないよう、SSLを有効にしてください (一般的なインターネットコミュニケーションは盗み読みすることができますが)。SSLを有効にするには、2つのオプションがあります - 自己署名証明書を作成する (一般的なネットワークの盗み読みは防ぐことができますが、結局のところ十分な努力により侵入されてしまいます)、またはベンダーから証明書を購入する (安いもので年額35USDほどです)。以下、自己署名証明書のインストール方法に関するインストラクションです。


'''Debian and Apache2'''
'''DebianおよびApache2'''


1. generate a certification:
1. 証明書を作成する:
       apache2-ssl-certificate
       apache2-ssl-certificate


for debian etch, apache2-ssl-certificate is no longer available, use make-ssl-cert instead:
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. edit /etc/apache2/ports.conf:
2. /etc/apache2/ports.conf を編集する:
       Listen 80
       Listen 80
       Listen 443
       Listen 443
3. copy /etc/apache2/sites-available/default to /etc/apache2/sites-available/default-ssl, and change /etc/apache2/sites-available/default:
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>


and also /etc/apache2/sites-available/default-ssl:
同時に、/etc/apache2/sites-available/default-sslを変更する:
       NameVirtualHost *:443
       NameVirtualHost *:443
       <VirtualHost *:443>
       <VirtualHost *:443>
99行目: 97行目:
       ...
       ...
       </VirtualHost>
       </VirtualHost>
4. symbolic link the ssl file:
4. sslファイルにシンボリックリンクを貼る:
       a2ensite default-ssl
       a2ensite default-ssl
5. don't forget to symbolic link the ssl module:
5. 忘れずにsslモジュールにもシンボリックリンクを貼る:
       a2enmod ssl
       a2enmod ssl
6. restart apache and test the connection (e.g. https://localhost/):
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 reference]
[http://edin.no-ip.com/html/?q=ssl_apache2_2_virtualhost_debian_automatically_https_forwarding 参考資料]


== 関連情報 ==
== 関連情報 ==


* [http://httpd.apache.org/ The Apache HTTP Server Project homepage]
* [http://httpd.apache.org/ The Apache HTTPサーバプロジェクト] - 英語
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server Wikipedia article on the 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つの基本的なステップがあります:

  1. mod_expiresをインストールおよび有効化してください - 詳細はドキュメントまたはmanページをご覧ください。
  2. 次のコードをバーチャルサーバの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

参考資料

関連情報