パーソナルツール
現在の場所: ホーム zope apache Apache 2との連携
書いた本
Plone 完全活用ガイド の Chapter 1, 2, 3, 11 を執筆しました。
plone のインストール、使い方から、機能・デザインのカスタマイズ、プロダクトの作り方まで、 plone のすべてがぎゅっと詰まっている書籍になっていると思います。
plone に興味がある人から、すでに使いこなしている方まで、ぜひ読んでみてください。
Plone 完全活用ガイドのサポートページ
ナビゲーション

 
文書操作

Apache 2との連携

作成者 takanori 最終変更日時 2005年03月23日 11時23分

Zopeサーバを直接ポート80番で公開しないで、Apache 2と連携して公開する方法について説明します。また、Apache 2側で画像のキャッシュ等の設定を行なうことにより、Zopeサーバの負荷が軽減されます。

目次

VirtualHostMonsterを生成[vhm]

Apache 2経由でアクセスするときには、URL等がZopeサーバの時とは変更になります。そのため VirtualHostMonster という Zope に標準で入っているプロダクトを使用して、

  1. Zopeの管理画面(http://localhost:8080/manage)をWeb browserで表示し、ルートフォルダにアクセスします。
  2. 右上のリストから VirtualHostMonster を選択して追加します。Idは何でもいいですが、わかりやすくするために VirtualHostMonster というIdにしておきます。

    Add VirtualHostMonster

  3. 追加されるとルートフォルダはこんな感じになります。

    VirtualHostMonster in Root folder

Apache 2をインストール[install]

次に、Apache 2をインストールします。

Vine Linuxにインストールする場合は簡単で、下記のコマンドを実行するだけです。

% sudo apt-get install apache2  

Windowsにインストール[wininstall]

  1. Windowsにインストールする場合は、Apache HTTP Serverのダウンロードページ から、最新版のWin32 Binary(apache_2.0.52-win32-x86-no_ssl.msi)をダウンロードします。
  2. 次にダウンロードしたファイルを実行するので、普通にインストールします。途中でServerName等の設定項目がでてきますが、あとで変更できるのでここではそのままにしてインストールします。

この段階で、Apache 2を起動しWeb browserでアクセスしてトップページが表示されることを確認します。

Apache 2とZopeを連携[connect]

Apache 2とZopeを連携させる設定を行ないます。例として以下のような設定を行なうこととします。

  • サーバ名は www.example.com
  • サーバの管理者は admin@example.com
  • http://www.example.com/Zope にアクセスすると、Zopeサーバのトップ(http://localhost:8080/ を表示する。
  • http://blog.example.com/ とblogのトップ(http://localhost:8080/blog/)を表示する。

設定ファイルの編集[conf]

エディタでApache 2の設定ファイルを開きます。Windowsでは C:\Program Files\Apache Group\Apache2\conf\httpd.conf Vine Linuxでは /etc/apache2/conf/httpd.conf に設定ファイルがあります。

まず ServerAdmin という行があるので、もし # でコメントアウトされていたらそのコメントアウトをはずして、管理者のメールアドレスを記述します。::

ServerAdmin admin@example.com

次に ServerName という行があるので、もし # でコメントアウトされていたらそのコメントアウトをはずして、サーバ名を記述します。::

ServerName www.example.com:80

Apache 2とZopeが連携できるように、Apach 2のproxyモジュール(mod_proxy)と、URL書き換えモジュール(mod_rewrite)を使用できるようにします。もし、以下の行が # でコメントアウトされていたら、コメントをはずして有効にします。::

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule rewrite_module modules/mod_rewrite.so

最後に、実際にApache 2とZopeを連携させるためのバーチャルホストの設定をファイルに追加します。:

    NameVirtualHost *
    <VirtualHost *>
      ServerName www.example.com
      RewriteEngine On
      RewriteRule ^/Zope(.*) http://localhost:8080/VirtualHostBase/http/www.example.com:80/VirtualHostRoot/_vh_Zope/$1 [L,P]
    </VirtualHost>
    <VirtualHost *>
      ServerName blog.example.com
      RewriteEngine On
      RewriteRule ^(.*) http://localhost:8080/VirtualHostBase/http/blog.example.com:80/blog/VirtualHostRoot/$1 [L,P]
    </VirtualHost>

編集が終了したら、設定ファイルを保存します。

Apache 2の再起動[restart]

設定終了後、Apache 2を再起動します。再起動する場合は、まず最初に設定ファイルに文法的に間違いがないかチェックしてから、行ないます。

  • Vine Linux上のApache 2を再起動する場合は、以下の手順で 設定ファイルの確認設定ファイルの再読み込み を実行します。

% sudo /etc/init.d/apache2 configtest
% sudo /etc/init.d/apache2 reload
  • Windows上のApache 2を再起動する場合は、以下の手順で 設定ファイルの確認Apache 2の再起動 を実行します。
    1. スタートメニュー→プログラム→Apache HTTP Server 2.0.52→Configure Apache Server→Test Configratuon
    2. スタートメニュー→プログラム→Apache HTTP Server 2.0.52→Control Apache Server→Restart

Apache 2が再起動したら、Web browserで下記のURLにアクセスし、正しく画面が表示されることを確認します。

  1. http://www.example.com/Zope/

    http://www.example.com/Zope/

  2. http://www.example.com/Zope/manage

    http://www.example.com/Zope/manage

  3. http://blog.example.com/

    http://blog.example.com/Zope/

    Apache 2を信頼できるproxyに設定[proxy]

    ここまでの設定でApache 2とZopeサーバの連携は行なえますが、Zopeサーバ側でWeb browserのIPアドレスがとれるようにするために、以下の設定を行なうことをおすすめします。

    それは、信頼できる proxyサーバを指定する trusted-proxy です。ここにproxyとして設定したApache 2サーバのIPアドレスを指定します。ZopeサーバとApache 2が同じマシン上で動作している場合は、以下の記述を zope.conf ファイルに追加します。

trusted-proxy 127.0.0.1

zope.conf の編集後、Zopeサーバの再起動を行ないます。こうすることにより、Zopeサーバ側でも REQUEST.getClientAddr() とすると Web browser のIPアドレスを取得できるようになります。

以上で、Apache 2とZopeの連携を行なえるようになりました。

ただし、上記の設定は基本的な設定です。他にもApache 2側で、キャッシュの設定や、ワームのログを出さないようにしたり、各VirtualHost毎にアクセスログを出力したりといった設定を行なったほうが、より安全で利便性があがります。

これらの設定については Apache 2のログ出力設定 を参照してください。


Powered by vine linux, python, zope, plone, coreblog