首页 » 后端 » Apache » 正文

Apache 反向代理的使用 与 防止被别人反向代理

发布者:站点默认
2012/04/28 浏览数(3,494) 分类:Apache, 数据安全 评论(2)

apache 反向代理的使用:

需要为 apache 加载模块:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

海外虚拟主机设置:

<VirtualHost *:80>
        ServerName www.a.b
        ServerAlias a.b
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPass / http://a.b.proxy.upall.cn/
        ProxyPassReverse / http://a.b.proxy.upall.cn/
</VirtualHost>

说明:

upall.cn已备案,所以upall.cn的其它二级域名也是可以正常使用的,要做的就是找一个备过案的域名,让期为 a.b 提供一个二级域名使用。

然后在海外通过 apache 的反向代理功能将 a.b.proxy.upall.cn 转换为 a.b。

防止自己的网站被别人“反向代理”:

<?php
/**
 * 说明:反代理
 * 作者:upall,http://upall.cn
 * 日期:17:18 2011年7月1日 星期五
 */
$svrUrl = 'http://' . $_SERVER['SERVER_NAME'].$_SERVER["PHP_SELF"];
if (!empty($_SERVER["QUERY_STRING"]))
	$svrUrl .= "?".$_SERVER["QUERY_STRING"];
?>
<script type='text/javascript'>
	var topUrl = top.location; // 这里貌似不是标准的JS写法?
	var svrUrl = '<?php echo $svrUrl;?>';
	// 如果浏览器的URL不是自己的URL就。。。。
	if(topUrl != svrUrl) top.location= svrUrl;
</script>

<完>

点击返回顶部
  1. 留言
  2. 联系方式