新月 - P2P掲示板

Apacheと朔を組み合わせて使う方法

2005-11-25, 2007-01-05

Apacheのリバースプロキシ機能を使って、 のURIからポート番号を消してかっこよくします。 RSSを静的生成するので負荷を低くする効果も期待できます。

この例ではDNS名が bbs.shingetsu.info 、 Apacheでのドキュメントルートが /srv/www/shingetsu です。 LAN上のIPアドレスは 192.168.1.2 です。

朔では server_name 等を設定してください。

[Gateway]
server_name: bbs.shingetsu.info
proxy_destination: 192.168.1.2:8000

[Path]
apache_docroot: /srv/www/shingetsu

Apacheの設定

プロキシモジュールとリライトモジュールを読み込みます:

LoadModule cache_module /usr/lib/apache2/modules/mod_cache.so
LoadModule disk_cache_module /usr/lib/apache2/modules/mod_disk_cache.so
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

プロキシとリライトの設定はこんな感じ:

<VirtualHost *>
    ServerAdmin webmaster@shingetsu.info
    DocumentRoot /srv/www/shingetsu
    ServerName bbs.shingetsu.info
    ServerAlias bbs.shingetsu.info
    ErrorLog /var/log/apache2/shingetsu.error.log
    CustomLog /var/log/apache2/shingetsu.access.log combined
    RewriteMap escape int:escape

    <Directory "/">
        <Limit POST>
            Include /etc/apache2/acl
        </Limit>
    </Directory>

    <Directory "/srv/www/shingetsu">
        Options -Indexes -ExecCGI
        AddType text/xml;charset=UTF-8 .rdf
        RewriteEngine on
        RewriteRule gateway.cgi/rss rss.rdf
        RewriteRule server.cgi - [F]
        RewriteRule ^([^/]*).js$ /STATIC/$1.js
        RewriteRule ^([^/]*).css$ /STATIC/$1.css
        RewriteRule favicon.ico /STATIC/favicon.ico
        RewriteRule rss1.xsl /STATIC/rss1.xsl
        RewriteRule ^thread.cgi/(thread_[0-9A-F]*)/([0-9a-f]*)/([0-9]*).(.*) \
                    /CACHE/$1/attach/$3_$2.$4
        <IfModule mod_proxy.c>
            RewriteRule gateway.cgi(.*) \
                http://192.168.1.2:8000/gateway.cgi${escape:$1} [P,NE]
            RewriteRule thread.cgi(.*) \
                http://192.168.1.2:8000/thread.cgi${escape:$1} [P,NE]
        </IfModule>
    </Directory>

    Alias /STATIC/ /usr/local/share/saku/www/
    <Directory "/usr/local/share/saku/www">
        Options -Indexes -ExecCGI
    </Directory>

    Alias /CACHE/ /var/local/spool/saku/
    <Directory "/var/local/spool/saku/">
        Options -Indexes -ExecCGI
    </Directory>
</VirtualHost>

<VirtualHost *>
    ServerAdmin webmaster@shingetsu.info
    DocumentRoot /srv/www/shingetsu
    ServerName node.shingetsu.info
    <Directory />
         RedirectMatch ^/$ http://shingetsu.info/
    </Directory>
</VirtualHost>

この例ではbbs.shingetsu.infoへのアクセスを朔に飛ばします。 ただしRSSは飛ばしません。 server.cgiは見せません。

aclというのは次のようなファイルです。 Spamを送ってくる相手を手作業でブラックリストに入れます。

Order Allow,Deny
Allow from All
Deny from 10.0.0.0/8
Deny from 192.168.0.0/16

これらの設定例はの2.0.0以降に同梱されています。

RSSとサイトマップの静的生成

の2.0.0以降に同梱されている mkrss.pyをcronで定期的(1時間に1回くらい)に動かします。 デフォルトでは /usr/local/lib/saku/mkrss にインストールされます。

Copyright© 2003-2017 shinGETsu Project. All Rights Reserved.
webmaster@shingetsu.info (Legal Notices)