我有以下的Apacheconfiguration。 以下服务位于每个端口上:
8022 – Apache。 testing端口,从长远来看将是80端口。
8002 – XDV ,一个位于其他服务前面的主题代理。
8202 – Trac ,基于Python的bug跟踪器,这是xdv需要坐在前面的一个服务,因此是分离的。
- modsecurity inbound_anomaly_score
- Apache HTTP身份validation错误
- build立一个本地DNS服务器
- PHP错误的常见位掩码值列表?
- 如何控制Apache的mod-security的IP地址
8082 – Plone CMS 。 没有在Apache中显示。 XDV代理请求它。
这个想法是,所有请求都是通过Apache(8022),通过xdv代理(8002),它将一个主题应用到每个内容源(8082和8202)
但是,我注意到在testing过程中,如果我通过8202访问Trac站点,那么RuntimeError: instance.__dict__ not accessible in restricted mode
的8022站点错误RuntimeError: instance.__dict__ not accessible in restricted mode
并且在Apache重新启动之前将不会再次工作。 无论8022是错误还是被访问,8202仍然工作。
这似乎与这个Trac错误有关 。 但我没有使用mod_python和WSGIProcessGroup和WSGIApplicationGroup是相同的值。
为什么会发生这种情况是否有更好的方法来设置Apache? 即wsgi元素?
在以前的设置迭代是在8022主机内,但这意味着它也从这个端口服务,并避免代理
<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 RewriteEngine On RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule ^/(.*) http://0.0.0.0:8002/$1 [P] </VirtualHost> <VirtualHost foo.bar.com:8202> ServerName foo.bar.com ServerAlias foo.bar.com <Directory "/home/web/foo/parts/trac/tracwsgi/cgi-bin"> 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 WSGIProcessGroup %{GLOBAL} 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 secretword require valid-user </Location> </VirtualHost>
首先,你应该有:
WSGIProcessGroup trac
而不是%{GLOBAL}。
你拥有它的方式,仍然运行在embedded式模式和其他一些Apache模块,或embedded式WSGI应用程序可能会干扰。