反向绑定域名,即将域名B绑定到域名A上,用户只要访问B就等同于进入A,内容都是由A提供,但是浏览器地址栏中显示的是域名B。反向绑定域名最初应该是应用在站点负载均衡和域名内网转发上,利用反向绑定域名的方法可以将用户的不同请求分发到不同的服务器上,从而实现性能均衡和减轻主服务器负担的目的。
反向绑定域名的好处有很多,比如实现动静分离,让nginx来处理静态文件,将动态内容请求分发到不同语言编写的后端程序,而这些不用语言编写的程序往运行在专门的服务器,如apache处理php、tomcat处理java、uwsgi处理python等等。
反向绑定域名在国内的应用也很广泛,有些购买了国内空间的朋友,可以用一台美国的服务器充当反向绑定域名的服务器,强制将域名绑定到空间上。有些国外的空间或者网站无法访问了,也可以用反向绑定域名的方法实现空间的正常访问。
当然反向绑定域名的好处还不仅于此,本篇文章就来分享一下freehao123.com提供的搭建反向绑定域名平台的方法:
Apache和Nginx都可以实现反向绑定域名,Apache利用.htaccess的重写规则实现域名绑定到另一个空间,Nginx利用conf规则配置,将域名跳转到目标服务器上。
kangle除了是一个反向绑定域名的服务器软件,还可以用kangle支持isapi、fastcgi、cgi、ajp、uwsgi、fcgi、hmux、http等多种扩展接口的特性,做负载均衡功能。
一、利用Apache虚拟主机空间作反向绑定域名
1、先找到一个支持自定义.htaccess的Apache服务器(免费空间或者虚拟主机),将空间的.htaccess文件下载到本地,用记事本打开,将下列代码添加进去,再上传,如下:
RewriteEngine On RewriteBase / RewriteRule ^(.*)$ http://freebbs.sinaapp.com/$1 [P]
2、注意把代码中的网址替换成你想要反向绑定域名的域名,这里是强制将域名绑定到SAE空间上,用了SAE的二级域名地址,详情参考:谷歌GAE和新浪SAE成功绑定域名并DNS解析方法与教程。
3、将域名解析到第一步中的支持自定义.htaccess的Apache服务器(免费空间或者虚拟主机)。
二、利用Nginx反向绑定域名
1、要使用Nginx反向配置,你需要一个已经安装了Nginx的VPS主机,部落用的是LNMP,创建一个虚拟机,绑定域名:alili.freehao123.info.
2、执行:cd /usr/local/nginx/conf/vhost,找到alili.freehao123.info.conf这个文件,删除其中的内容,将以下代码替换保存,上传,覆盖。
server { listen 80; server_name alili.freehao123.info; location / { proxy_pass http://115.28.7.69:8080; proxy_redirect off; #媒体过期时间设长一些 if ($request_filename ~* .*.(gif|jpg|jpeg|png|bmp|swf)$) { expires 30d; } #js和css过期时间设置为12小时; if ($request_filename ~ .*.(js|css)?$) { expires 12h; } proxy_set_header Host 115.28.7.69; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Content-Type $content_type; #proxy_hide_header Content-Type; } }