發表文章

目前顯示的是有「WEB」標籤的文章

把Git上Web

圖片
想到Git Web,大家第一個想到的就是 GitHub ,但 GitHub 放公開的專案是好,無奈私有專案卻是要花錢的,所以肯定很多人會想要自建Git Web。 目前的OpenSource專案來看, GitBuck 的界面是最接近 GitHub 的專案,但是恨不逢君未嫁時,那時候她還沒有出生,所以用了另一個Open Source: Gitblit 。 我覺得 Gitblit 比 GitBuck 較為封閉,因為 Gitblit 雖然可以fork,但沒有pull request,比較不利於不同團隊之間的交流。 Gitblit 是建置在Java之上,所以要先安裝JVM (7+),Java環境裝好後,再來是建置WebC Container,最方便的是 Tomcat ,把下載War檔( 1.7.1版 )且接丟到 webapp/ 下(丟進去前可將檔名改為git.war),再把 Tomcat 上起來,下載的 War檔 就會自動在 webapp/ 下解開。 開啟瀏覽器,以admin/admin登錄,先改密碼後再把 Tomcat 停機,再來修改 Gitblit 的 設定 。 Gitblit 的檔案結構如下: WEB-INF/data 儲存著包含 Gitblit 的設定與檔案庫(WEZB-INF/data/git),通常我們不會想把這麼重要的目錄直接放在WEB程式下,首先 把 data/對的所有資料拷貝到別處(其中兩個*.pem除外不拷貝):例如拷貝到 /gitrepo下(data目錄保留對刪除,若刪除則程式就跑不起來), 然後開啟web.xml,修改其中資料如下 設定中的 /gitrepo 就是在 Gitblit 內${baseFolder}所指稱的路徑。 左圖後的 users.conf就是使用者的設定檔,在Web界面設定皆儲存於此檔案 project.conf 與 git/project.mkd 兩個檔是主要檔案庫的標題與說明,自行修改中文如下: project.conf [project "main"]    title = 主要版本庫    description = 文件庫的主群組 git/project.mk...

Nginx http2 應用感想

圖片
Nginx 1.9.6 在上週出來了,直接支援 HTTP 2(注意,openssl得是1.0.2版以上),然後不小心又看了 Http2Demo ,裡面的測試是用一了張切了48張小圖的相片,測了一下,嗯,HTTP 2好像比較快,二話不說,馬上把公司的網站直接升級到 1.9.6,試了一下,怎麼好像沒有快多少? 不多說,馬上測試一下(用一個有88張小切圖的網頁,使用反向代理,在無Cache的情況下),先來個HTTP連線測一下(用 恐龍妹 測的) 花了305微秒,然後再測一下 HTTP 2(over TLS)連線, 啥!居然花了636微秒,這是什麼回事! 趕快回去看Nginx是 怎麼說 的! HTTP2使用單一連線,從上面的圖大概可以感受到,HTTP取得88張圖是同時開多個連線向主機要圖,而HTTP2則使用單一連線用多工的方式向主機要圖,也就是在人少的時候,主機應付的來的情況下,是同時給多張圖,而HTTP2則是把資料通過單一通道傳輸。 所以實際上 HTTP2會耗用比較多的記憶體,而下載大檔案或是媒體串流時,多工並無幫助,更重要的一點是HTTP2 的Hand Shake會花比較長的時間,而且更重要的是Nginx Http2一定要Over TLS,我相信加解密,不可避免地會耗用更多時間。 另外影響速度的關鍵是網路的往返(round trip)時間,以下是NGINX的實測狀況 可以看出,HTTP2 在須要加密傳輸時確實比較快,但比起單純的HTTP確實較慢。 或許有人會覺得,在大量用戶的時侯,單一連線會比較節省資源,但是我覺得有以下點須要加以考慮: NGINX是號稱可以抵擋DDOS攻擊的,大量用戶連線不致於造成問題 瀏覽器本身的Cache,Nginx會為每一個Resource加上ETag,下次再來時不會再次存取 不是 每種瀏覽器 都支援HTTP 2(其實不用太擔心,除了IE,大部份主流的瀏覽器都支援,不支援頂多回到HTTPS) 所以結論是 須要加密的網頁(像登錄、個資等敏感資料),請直升HTTP 2(不支援的瀏覽器直接回HTTPS) 非敏感的資料,還是維持原來的HTTP吧!畢竟速度較快(Google卻不這樣認為,她們把所有的Google網頁都用了HTTP 2/S通訊) PS: 有個瀏覽器外掛(HTTP/2...