反向绑定域名的方法-强制绑定域名,实现负载均衡,域名内网转发

免费域名   2014年10月01日 20:17  

反向绑定域名的方法-强制绑定域名,实现负载均衡,域名内网转发

反向绑定域名,即用户A访问到B,B将A的请求转向C,最后实现A访问C的过程。反向绑定域名最初应该是应用在站点负载均衡和域名内网转发上,利用反向绑定域名的方法可以将用户的不同请求分发到不同的服务器上,从而实现性能均衡和减轻主服务器负担的目的。

反向绑定域名的好处有很多,比如实现动静分离,让nginx来处理静态文件,将动态内容请求分发到不同语言编写的后端程序,而这些不用语言编写的程序往运行在专门的服务器,如apache处理php,tomcat处理java,uwsgi处理python等等。

反向绑定域名在国内的应用也很广泛,有些购买了国内空间的朋友,域名没有BA的可以用一台美国的服务器充当反向绑定域名的服务器,强制将域名绑定到空间上。有些国外的空间或者网站无法访问了,也可以用反向绑定域名的方法实现空间的正常访问。

当然反向绑定域名的好处还不仅于此,本篇文章就来分享一下搭建反向绑定域名平台的方法,有关于DNS和CDN自建使用的文章,可以看看:

反向绑定域名的方法-强制绑定域名,实现负载均衡,域名内网转发

一、利用虚拟主机空间作反向绑定域名

1、先找到一个支持自定义.htaccess,apache服务器,允许有反向代(^_^)理的权限的免费空间或者虚拟主机,将空间的.htaccess文件下载到本地,用记事本打开,将下列代码添加进去,再上传,如下:


RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ https://freebbs.sinaapp.com/$1 [P]

2、注意把代码中的网址替换成你想要反向绑定域名的域名,这里是强制将域名绑定到SAE空间上,用了SAE的二级域名地址,详情参考:谷和新浪SAE成功绑定域名并DNS解析方法与教程

虚拟空间反向绑定域名

3、如果你找不到支持.htaccess的URL地址重写的虚拟主机或者空间,可以直接使用7ghost这个PHP程序,只要空间支持allow_furl_open和curl、容量至少要有500K即可。如果启用缓存的话需要 写权限和空间足够大。

利用PHP在线程序反向绑定域名

4、这是7ghost程序设置界面(点击放大),利用它你可以反向Dai理任何网站,详细的操作方法:7ghost基于PHP的网站反向绑定域名程序无需.htaccess的URL重写

反向绑定域名设置界面

二、利用Nginx反向绑定域名

1、如果你有VPS主机,那么可以用Nginx的反向配置来搭建一个反向绑定域名的平台了,Nginx强大之处还在于还可以变成一个缓存平台,大大加快你反向Dai理的网站的访问速度。

利用Nginx绑定域名

2、因为国内的空间不让绑定没有BA的域名,部落之前利用Nginx反向绑定域名到国内的空间上,详细方法参考:反向绑定域名方法-Nginx反向配置

三、利用kangle web搭建反向绑定域名服务器

1、kangle web服务器是一款跨平台、功能强大、安全稳定、易操作的高性能web服务器和反向Dai理服务器软件,能实现强大的访问请求控制(url,ip地址,连接数/网速限制,http头,时间控制,多种http认证,#服务器负载,url重定向,url重写,内容过滤等等)。

kangle web搭建服务器平台

2、与上面的采用Nginx反向配置来搭建反向绑定域名不同的是,kangle web有良好的Web操作界面,通过搭建不同的配置可以实现复杂的反向域名。详细可以参考:kangle服务器反向设置

kangle web高级设置

四、利用AMH和upupw来反向绑定域名

1、AMH是国内一个开源的主机面板,可以创建 LNMP、LAMP、LNMH 等不同WEB应用环境,新版本的AMH还支持apache2.4和HHVM。AMH相应的功能模块也非常地多,其中AMProxy就是一个反向绑定域名模块。

AMH反向绑定域名

2、AMProxy的2.0版本支持缓存管理功能,支持在线关键字添加、替换,支持设置不同类型文件替换、与支持添加自定义首尾html代码块等。利用CDN智能解析功能,将不同路线、地理位置的用户解析到相应服务器,对用户访问进行缓存加速,同时减轻源站的服务器压力。

AMH添加反向域名

3、利用AMH反向绑定域名并成功绕过白**名单的方法,首先是要求:一个有BA号的域名、一个没有BA号的域名、一台可以访问的境外主机,美国的VPS主机就可以。

4、使用 root 账号登录 Linux 服务器。执行 amh 安装脚本:wget https://amh.sh/amh.sh && bash amh.sh 2>&1 | tee amh.log,根据提示输入选择1~3选项。输入1回车,进入安装。

5、极速安装方式大约只需要1至3分钟(以服务器性能为准),成功安装后系统会提示AMH与MySQL默认账号密码。可使用普通连接访问面板,https://ip:8888,或加密的连接访问面板,https://ip:9999

6、登陆后台找到 模块扩展 > 下载模块,大约在第3页找到 AMProxy-2.0 下载并安装。在管理模块中找到并进入设置界面,可以看到新增AMProxy反向d网站一栏。绑定域名:输入没有BA号的域名(IP),反代域名:输入有BA号的域名(IP) 。

输入绑定的域名

7、用上面的方法,默认是反代到国内主机的80端口上,可是有些主机反代到80端口后还是无法访问,下面说一下如何使用其他端口建站。这里以没有BA号的域名 bukets.net和有BA号的域名 demo.vsen.me来作演示,环境是upupw+amh。

8、先在国内的云主机上安装upupw,然后新建虚拟主机域名输入为 demo.vsen.me,目录自设。打开upupw目录进入 Apache2\conf,找到httpd-vhosts.conf并打开(注意不要使用系统的笔记本或文本文档打开,我用的是Notepad++)

9、找到刚刚新建的虚拟主机规则,并将 servername demo.vsen.me:80 改为 servername demo.vsen.me:8000,保存并关闭。继续打开目录下的http.conf文件,在最下方 # upupw apache conf end 前增加如下代码,保存并关闭。


# 新增监听端口
Include conf/httpd-listen.conf

10、在 Apache2\conf 目录下新建 httpd-listen.conf 文件,在里面写入 Listen 8000,保存并关闭。打开系统防火墙(控制面板中),选择 例外 选项卡,点击下方的 添加端口 按钮,名称自起,端口号写入8000,确定。回到upupw面板,重启

反向绑定域名添加端口

11、没有意外的话,访问bukets.net就可以成功打开网站了。上面只做了一个网站的例子,如果以后有多个网站,那就需要重复以上步骤了。

五、利用Nginx搭建域名内网转发平台

1、Nginx反向配置非常地强大,默认我们一般是将A域名反向到B域名的80端口上,但是如果B域名的80端口无法使用了,我们可以自己指定一个端口,这样用户实际上访问的不是默认的80端口,但是用户体验上没有什么不同。

反向绑定域名内网转发

2、在反向绑定域名方法-Nginx反向配置和kangle服务器反向设置一文中讲到了阿里的VPS主机不让未BA的域名绑定80端口,通过我们自定义端口成功解决此问题。

3、这里讲一下直接利用Nginx搭建域名内网转发平台的方法,原理各上面是一样的,即将一台主机设置为将监听域名的访问请求的服务器,根据不同的请求,将用户引导到不同的端口的内网服务器上。

4、先在服务器上安装并编译好Nginx,然后修改配置文件 nginx.conf,根据自己的实际情况进行相应的调整,代码说明如下:


user www www;
worker_processes 1;
error_log logs/error.log;
pid logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
    use epoll;
    worker_connections 65535;
}
http {
    include mime.types;
    default_type application/octet-stream;
    include /usr/local/nginx/conf/reverse-proxy.conf;
    sendfile on;
    keepalive_timeout 65;
    gzip on;
    client_max_body_size 50m; #缓冲区Dai理缓冲用户端请求的最大字节数,可以理解为保存到本地再传给用户
    client_body_buffer_size 256k;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    proxy_connect_timeout 300s; #nginx跟后端服务器连接超时时间(Dai理连接超时)
    proxy_read_timeout 300s; #连接成功后,后端服务器响应时间(Dai理接收超时)
    proxy_send_timeout 300s;
    proxy_buffer_size 64k; #设置Dai理服务器(nginx)保存用户头信息的缓冲区大小
    proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
    proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
    proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘
    proxy_ignore_client_abort on; #不允许Dai理端主动关闭连接
    server {
        listen 80;
        server_name localhost;
        location / {
            root html;
            index index.html index.htm;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }
    }
}

5、 接着找到Nginx反向配置文件reverse-proxy.conf,配置示例如下:


server
{
    listen 80;
    server_name xxx123.tk;
    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://192.168.10.38:3000;
    }
    access_log logs/xxx123.tk_access.log;
}
 
server
{
    listen 80;
    server_name xxx456.tk;
    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://192.168.10.40:80;
    }
    access_log logs/xxx456.tk_access.log;

6、 xxx123.tk、xxx456.tk是服务器监听的域名访问请求,192.168.10.38:3000、192.168.10.40:80是局域网服务器,重新加载nginx配置文件,使之修改生效。

7、把域名都解析到反向Dai理服务器上,来自不同的访问请求通过上面的配置就可以分别引向不同的内网服务器上了。

8、因为用户所有的请求都是通过反向Dai理服务器中转的,内网服务器显示的访问IP都是反向Dai理服务器的,这里我们只要修改一下内网服务器的日志显示格式即可,在配置文件中加入以下代码:


log_format access '$HTTP_X_REAL_IP - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $HTTP_X_Forwarded_For';

access_log logs/access.log access;

六、反向绑定域名方法小结

1、对于国外一些无法访问的域名,和国内没有BA号的域名,反向绑定域名可以解决访问的问题,前提是需要找到稳定快速和虚拟主机空间或者一个VPS主机,如果用作中转的服务器响应速度太慢的话,反向绑定的效果不会太好。

2、Nginx反向配置不仅可以用来当作域名转发服务,还可以实现服务器负载均衡,局域网内网转发,有兴趣的朋友可以研究一下配置Nginx前端Apache后端服务器,充分发挥好Nginx强大的低资源低消耗高性能的特性。

文章出自:vsen 博主投稿,  由部落编辑整理,部分代码参考ttlsa博主,版权归原作者所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

十个便宜VPS主机分享-VPS服务器建站和搭建应用服务体验
2014年六大免费VPS主机-免费VPS申请、使用和点评

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

在这个部落村庄里,已经有50 位神马家族成员冒出泡来在农场开始干活了
  • 洛克 14

    哈哈

    这是农场的第 1 块农田,部落批准 [洛克] 在[2014-10-1 20:26]开垦完成.
  • :twisted: 有点麻烦啊!

    这是农场的第 2 块农田,部落批准 [逗比妹] 在[2014-10-1 20:39]开垦完成.
  • 这篇文章满满都是技术啊,哈哈哈

    这是农场的第 3 块农田,部落批准 [蠢蛋小丑魚] 在[2014-10-1 20:41]开垦完成.
  • ytf4425 15

    每日打卡,打卡时间:下午8:46:07

    这是农场的第 4 块农田,部落批准 [ytf4425] 在[2014-10-1 20:45]开垦完成.
  • ytf4425 15

    其实反向绑定能拿来访问推@特、yout#ube之类的网站

    qi 回复:

    @ytf4425, 现在好多的#镜像,是不是用了这个方法?

    这是农场的第 5 块农田,部落批准 [ytf4425] 在[2014-10-1 20:54]开垦完成.
  • 小哀

    终于更新了!!博主!

    这是农场的第 6 块农田,部落批准 [小哀] 在[2014-10-1 20:56]开垦完成.
  • 很好的文章!请问博主有什么给wordpress博客加速的方法吗?我去掉了Goo*gle API和关闭了不必要的插件,但效果不明显诶

    qi 回复:

    @xosadmin, 是不是会空间有关系?如果空间本身速度慢的话,小部分调整可能效果不明显。

    xosadmin 回复:

    @qi, 主机是国内的,不会慢,ping大概40多

    qi 回复:

    @xosadmin, 经过检查,你的主题有引用sakura.ne.jp、amicon.sinaapp.com等好几处的JS文件是不存在的,这可能是导致你的网站打开慢的原因。你可以用Chrome来查看。

    xosadmin 回复:

    @qi, 请问如何去掉呢?

    qi 回复:

    @xosadmin, 用文本工具打开你的主题代码,然后将这些JS的引用地址替换成可用的,或者删除。

    xosadmin 回复:

    @qi, 主题的index.php?还是style.css?我的index.php里没有显示js

    qi 回复:

    @xosadmin, 是你的主题里,有可能是在header.php或者其它的文件中。都是引用了JS文件的。

    xosadmin 回复:

    @qi, 奇怪,我在主题文件里也没找到这些不存在js的地址

    qi 回复:

    @xosadmin, 那是不是其它的引用导致的?比较文章,或者某一个页面等。

    xosadmin 回复:

    @qi, 好吧,我试试

    包子 回复:

    @xosadmin, 广告和时钟引用了外部的资源不存在,可能拖慢速度

    xosadmin 回复:

    @包子, 主页没有不存在的js吗?

    这是农场的第 7 块农田,部落批准 [xosadmin] 在[2014-10-1 21:17]开垦完成.
  • 今天簽到啦!時間:下午9:23:12~歡迎訪問AREFLY.COM~~ :P

    这是农场的第 8 块农田,部落批准 [超級efly] 在[2014-10-1 21:22]开垦完成.
  • 終於更新啦!! :razz:

    这是农场的第 9 块农田,部落批准 [超級efly] 在[2014-10-1 21:23]开垦完成.
  • 终于有新文章~\(≧▽≦)/~啦啦啦~

    这是农场的第 10 块农田,部落批准 [烟花易冷] 在[2014-10-1 21:46]开垦完成.
  • keke 4

    终于更新了

    这是农场的第 11 块农田,部落批准 [keke] 在[2014-10-1 23:24]开垦完成.
  • 终于更新了。。。
    路过打酱油

    这是农场的第 12 块农田,部落批准 [不认识] 在[2014-10-2 09:50]开垦完成.
  • Kung 23

    后后后后排。。。。十月一上班中。。。

    qi 回复:

    @Kung, 加班费不少吧。。。。

    Jason 回复:

    @qi, 三倍工资还是加三天假期?

    这是农场的第 13 块农田,部落批准 [Kung] 在[2014-10-2 09:51]开垦完成.
  • 神父 20

    镜像一个谷歌给自己用

    qi 回复:

    @神父, 有人把谷歌的镜像拿出来给大家,然后放点广告,还能赚钱。

    Jason 回复:

    @qi, 这么好啊!

    包子 回复:

    @qi, 没广告的谷歌镜像太多了,带广告的谁用哦

    这是农场的第 14 块农田,部落批准 [神父] 在[2014-10-2 10:56]开垦完成.
  • 终于更新了啊

    这是农场的第 15 块农田,部落批准 [总有刁民想害朕] 在[2014-10-2 11:27]开垦完成.
  • 极雪 15

    全是炒冷饭那。。。。。。。。

    这是农场的第 16 块农田,部落批准 [极雪] 在[2014-10-2 12:50]开垦完成.
  • 技术文章,支持一个

    这是农场的第 17 块农田,部落批准 [网赚猫] 在[2014-10-2 12:52]开垦完成.
  • 貌似很牛逼啊

    这是农场的第 18 块农田,部落批准 [吴尼玛] 在[2014-10-2 13:06]开垦完成.
  • 用来反向绑定一些不支持绑定域名的空间还是挺有用的。

    qi 回复:

    @北门放羊, 是的,强制绑定域名还是不错的。

    这是农场的第 19 块农田,部落批准 [北门放羊] 在[2014-10-2 15:06]开垦完成.
  • Jason 16

    QI好久没更新啦!

    qi 回复:

    @Jason, 博客改成论坛了?

    Jason 回复:

    @qi, 没有,最近博客的首页页面出现错位问题了,就换个论坛地址填上去,问一下首页左侧和右侧错位是哪个文件造成的?博客地址是:323xin.ml

    这是农场的第 20 块农田,部落批准 [Jason] 在[2014-10-2 23:10]开垦完成.
  • Vsen 4

    这一下总结这么多方法。

    包子 回复:

    @Vsen, 头2条很实用

    这是农场的第 21 块农田,部落批准 [Vsen] 在[2014-10-3 15:48]开垦完成.
  • 包子

    @qi, 求 7ghost 2.0版下载源

    这是农场的第 22 块农田,部落批准 [包子] 在[2014-10-3 16:22]开垦完成.
  • @qi 我擦,本人小站被镜像了,怎么破

    qi 回复:

    @xilouqingzhu, 我的也被人镜像了,有一个还是全站静态化,有一段时间百度还把我的排它的后面。

    xilouqingzhu 回复:

    @qi, 那怎么搞。。。

    qi 回复:

    @xilouqingzhu, 查一下空间的IP,然后到空间商那里投诉,美国的空间商对这个比较重视。

    这是农场的第 23 块农田,部落批准 [xilouqingzhu] 在[2014-10-6 13:31]开垦完成.
  • pxsky 3

    很实用的帖子啊

    这是农场的第 24 块农田,部落批准 [pxsky] 在[2014-10-7 11:05]开垦完成.
  • 好复杂。。

    这是农场的第 25 块农田,部落批准 [giuem] 在[2014-10-23 21:15]开垦完成.
看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


(Ctrl + Enter提交)   

部落快速搜索栏

热门点击排行榜

网站导航栏

X
返回顶部