
主に試行錯誤を経て、以下の 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 インスタンスは、作成したデーモン モード プロセスでは実行されません。次を参照してください: