ディレクトリ、プロキシ、および場所 - 1 つの Apache 構成で共存させるにはどうすればよいでしょうか?

ディレクトリ、プロキシ、および場所 - 1 つの Apache 構成で共存させるにはどうすればよいでしょうか?

主に試行錯誤を経て、以下の Apache 構成ファイルを作成しました。

これは、localhost:8002 上のサーバーと WSGI 経由の trac サーバーが LDAP サーバーを共有し、同じドメイン/ポート上にあるように見せることを目的としています。

ルールは独立して機能しますが、並行して機能することはありません。

特に、trac WSGI はProxyPass/ProxyPassReverse行がコメント アウトされている場合にのみ正しく機能します。リダイレクトがなければ、localhost:8002 のサーバーは明らかに送信ポート 8022 にマップされません。

ディレクトリ、プロキシ、および場所のルールの組み合わせが問題の原因であると思われますが、あるいはそれらの順序が問題なのでしょうか?

WSGIDaemonProcess trac stack-size=524288 python-path=/usr/lib/python2.5/site-packages
WSGIScriptAlias /trac /home/web/foo/parts/trac/tracwsgi/cgi-bin/trac.wsgi

<VirtualHost foo.bar.com:8022>
    ServerName foo.bar.com
    ServerAlias foo.bar.com

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPreserveHost On
    ProxyPass / http://localhost:8002/VirtualHostBase/http/foo.bar.com:8022/foo/VirtualHostRoot/
    ProxyPassReverse / http://localhost:8002/VirtualHostBase/http/foo.bar.com:8022/foo/VirtualHostRoot/

    <Directory "/home/web/foo/parts/trac/tracwsgi/cgi-bin">
        WSGIApplicationGroup %{GLOBAL}
        Options +Indexes FollowSymLinks
        AllowOverride None
        Allow from all
        Order allow,deny
    </Directory>

    <Location "/trac">
        AuthBasicProvider ldap
        AuthType Basic
        AuthzLDAPAuthoritative off
        AuthName "Login"
        AuthLDAPURL "ldap://127.0.0.1:389/dc=foo-bar,dc=org?uid"
        AuthLDAPBindDN "cn=admin, dc=foo-bar, dc=org"
        AuthLDAPBindPassword secret
        require valid-user
    </Location>

</VirtualHost>

答え1

追加:

ProxyPass /trac !

'/' の ProxyPass の前。

見る:

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass

WSGIProcessGroup ディレクティブも欠落しています。その Trac インスタンスは、作成したデーモン モード プロセスでは実行されません。次を参照してください:

http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac

関連情報