Apacheによるプロキシ

Apacheをプロキシとして利用し Apacheの背後で CherryPyサーバを動かすことについて、CherryPyでは好ましいセットアップ例を挙げていますし、wikiにはさらに詳細な情報があります。あなたもApacheのhttps機能を利用したり、静的なファイルを任せたりするために、Apacheを使いたいと思うかもしれません。

簡単にいえば、 app.cfg に以下のセクションを追加してください:

[/]
base_url_filter.on = True
base_url_filter.use_x_forwarded_host = True

ただし文字コードについては記述していません。Kidテンプレートは文字コードとしてデフォルトで utf-8 を使います。一方Apacheが Content-Type ヘッダで返す文字コードは ISO-8859-1 です。この不一致は、バリデーションのエラーや文字のレンダリングミスなどを引き起こします。これについてはApacheの以下のディレクティブを上書きして下さい:

#This is located in your Apache <Location> or
# <VirtualHost> directive that is proxying TurboGears

AddDefaultCharset utf-8

またCherryPyから明示的に正しい文字コードをセットすることも可能です:

#this would go in your controllers.py before you return your dict

cherrypy.response.headerMap["Content-Type"] += ";charset=utf-8"

Apacheはこのヘッダに気づき、これを通過させてくれるでしょう。