VPS(ubuntu server 10.04)上搭建Mercurial 中央库服务器 通过nginx实现安全验证
1.安装mercurial 和 nginx
sudo apt-get install python2.6sudo apt-get install python-all-dev sudo apt-get install python-setuptools sudo easy_install -U mercurial hg --version
?
nginx安装方法见我之前的博客。
?
2.配置中央库
新建一个本地库
mkdir -p /var/hg/depo1cd /var/hg/depo1hg init
?建立配置文件
vi /var/hg/depo1/hgweb.config
?内容如下:
[web]push_ssl = falseallow_push = *encoding = "UTF-8"[paths]/depo1 = /var/hg/depo1[hooks]changegroup = hg update
?(配置了一个hook,用于每次客户端push新的修改时,都自动update)
开启服务
hg --cwd /var/hg/depo1 serve -d -a localhost --webdir-conf hgweb.config
?
(-a localhost就可以杜绝其他人通过8000端口访问该服务器)
?
3.配置nginx
在 http://trac.edgewall.org/browser/trunk/contrib/htpasswd.py 下载该程序,并拷贝至/etc/nginx目录,用于创建密码文件。
创建密码文件(添加3个用户)
cd /etc/nginx/python htpasswd.py -c -b htpasswd useraaa1 123python htpasswd.py -b htpasswd useraaa2 123python htpasswd.py -b htpasswd useraaa3 123
?
修改nginx的配置文件
vi /etc/nginx/nginx.conf
?在http{}段下增加:
client_max_body_size 20m;
修改nginx的配置文件
vi /etc/nginx/sites-enabled/default
增加如下:
location /depo1 {root html;index index.html index.htm;proxy_pass http://127.0.0.1:8000;auth_basic "Restricted";auth_basic_user_file htpasswd;}
重启ngxin
service nginx restart
?
4.完成
现在可以在客户端机器通过浏览器访问:
http://hostname/depo1
来浏览中央库;也可以直接通过hg来push和pull。注意这些操作都需要输入上面建立的用户名和密码来验证。