起因其实是这样的,我在学校里弄了一台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] //phpfensi.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 |