首先說(shuō)為什么是Windows平臺(tái),因?yàn)閘inux/unix下已經(jīng)有很多人寫(xiě)過(guò)了,windows下還很少有人寫(xiě)。
其實(shí)也沒(méi)什么太大不同就是幾個(gè)小細(xì)節(jié),當(dāng)作自己的備忘,給其他人一個(gè)參考而已
我的目的是建立一個(gè)基于http的 mercurial服務(wù)器,而且支持用戶認(rèn)證的訪問(wèn),mercurial本來(lái)是自帶一個(gè)輕量級(jí)的http服務(wù)的,但是出于安全
我用Nginx的反向代理功能提供Mercurial的對(duì)外訪問(wèn)。
1. 下載
http://mercurial.selenic.com/http://nginx.org/en/download.html2. 安裝
Mercurial需要安裝,Nginx不需要,隨便找個(gè)目錄解壓縮就好了。
3. 建立Mercurial的代碼倉(cāng)庫(kù)
隨便建個(gè)目錄,比如 c:\mercurial\repos
hg init4. 配置mercurial 并啟動(dòng) mercurial 的http服務(wù)
hg serve -d -a localhost -p 8000 --webdir-conf hgweb.config-d 是指后臺(tái)運(yùn)行
-a 指定 localhost是為了限制mercurial只能從本機(jī)訪問(wèn)
--webdir-conf 指定 mercurial的 web配置文件為 hgweb.config
hgweb.config的內(nèi)容很簡(jiǎn)單
[web]
push_ssl = false
allow_push = *
[paths]
/myhg = c:\mercurial\repos\
允許push的時(shí)候不需要 https ,允許所有人push,把mercurial的代碼庫(kù)映射到web上的 /myhg 目錄
5. 修改nginx的配置
到nginx/conf 目錄下打開(kāi) nginx.conf,修改成如下的樣子。
location / {
root html;
index index.html index.htm;
auth_basic "Restricted";
auth_basic_user_file htpasswd;
proxy_pass http://localhost:8000;
}
使用簡(jiǎn)單的密碼校驗(yàn),反向代理到 localhost:8000
6. 配置用戶和密碼
在 nginx的 conf下,建立一個(gè)叫 htpasswd 的文件,純文本,每一行是一對(duì) 用戶名密碼,冒號(hào)分隔,比如:
tom:1234
mike:5678
7. 最后啟動(dòng)nginx
直接運(yùn)行 nginx.exe就好了,用瀏覽器打開(kāi) 你的主頁(yè)看看吧