起因其實是這樣的,我在學校里弄了一臺NAS,然后在這臺機上開了Git Server來進行社團的源碼控制,但是呢,只有內網IP,外網沒辦法直接訪問到機器.
但是手里管理著學校一臺有幾個域名解析的SERVER(但是應該是用VMWARE搞的VPS之類的,然后學校把相關域名解析到有外網IP的反向代理服務器,然后通過反向代理服務器上的squid分發到內網),于是某天突發奇想,通過Apache偽靜態+Proxy曲線救國訪問git server,經過百般嘗試終于成功了.
動一下httpd.conf即可,在某域名的VirtualHost段下加上如下代碼:
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteCond %{QUERY_STRING} ^(.*)$
- RewriteRule ^(.*)/([a-z0-9_\-]+)\.git$ http://內網IP解析的域名/$2.git [P,L]
- RewriteRule ^(.*)/([a-z0-9_\-]+)\.git/(.*)$ http://內網IP解析的域名/$2.git/$3 [P,L] //Vevb.com
- </IfModule>
并在httpd.conf開頭補上,AddDefaultCharset UTF-8,防止反向代理亂碼,然后去掉如下代碼前的注釋,最后重啟apache服務.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_http_module modules/mod_proxy_http.so
新聞熱點
疑難解答