服务器的apache上配置了redmine和gerrit,redmine使用默认端口80,gerrit按照网上配置httpd.conf,
- <VirtualHost *>
- ServerName localhost
- ProxyRequests Off
- ProxyVia Off
- ProxyPreserveHost On
- <Proxy *>
- Order deny,allow
- Allow from all
- </Proxy>
- <Location /login/>
- AuthType Basic
- AuthName "Gerrit Code Review"
- AuthBasicProvider file
- AuthUserFile /home/xx/gerrt_sites/etc/passwords
- Require valid-user
- </Location>
- ProxyPass / http://127.0.0.1:8088/
- </VirtualHost>
方法:
1.首先在/etc/apache2/ports.conf中添加
NameVirtualHost *:8090
Listen 8090
2.配置/etc/apache2/httpd.conf:
ServerName localhost
<VirtualHost *:8090>
ServerName localhost
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *:8090>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
AuthBasicProvider file
AuthUserFile /home/xx/gerrit_sites/etc/passwords
Require valid-user
</Location>
ProxyPass / http://127.0.0.1:8088/
ProxyPassReverse / http://127.0.0.1:8088/
SetEnv force-proxy-request-1.0.1
SetEnv proxy-nokeepalive 1
</VirtualHost>
3.ProxyPass / http://127.0.0.1:8088/,这里的配置必须和/home/xx/gerrt_sites/etc/gerrit.config文件里面的
[httpd]
listenUrl = http://*:8088/ 相一致。
打开:127.0.0.1:8090,成功,127.0.0.1/redmine也可以打开。
之前一直用http://127.0.0.1:8088/来打开,结果总报错:
Configuration Error
The HTTP server did not provide the username in the Authorization header when it forwarded the request to Gerrit Code Review.
If the HTTP server is Apache HTTPd, check the proxy configuration includes an authorization directive with the proper location, ensuring it ends with '/':
虽然可以使用了,但是感觉用多端口比较麻烦,总忘记。再看看多站点怎么配置吧!