• 新时代 新担当 新作为 2019-09-21
  • 老骥伏枥志消防 走笔成言驱火患 2019-09-21
  • 安全上网 七招教你避防风险 2019-09-20
  • 价值-热门标签-华商生活 2019-09-19
  • 寻找三秦非遗:二月二,大荔县阿寿村药王庙会赛花馍 2019-09-19
  • [酷]此文已经把马克思理论、边际理论、人类需求层次理论、生物学理论、心理学理论、社会管理学理论等理论在哲学层面完美融合了! 2019-09-12
  • 梁家河,一个中国村庄的幸福与奋斗 2019-09-10
  • 建好欧美同学会 助力伟大中国梦 2019-09-10
  • 上海抚州商会返乡考察团来抚考察 2019-09-05
  • 匠心直播官网一振兴重庆传统手工艺 2019-08-30
  • 一线城市,已不适合传统超市生存 2019-08-24
  • 不忘初心 砥砺奋进 2019-08-24
  • 了解互联网金融诈骗手法 提高防范意识 2019-08-20
  • 推动乡村产业振兴(思想纵横) 2019-08-20
  • 木地板铺上墙,自然又有范! 2019-08-16
  • 当前位置:双色球基本走势图表图-建站教程-服务器教程-理解web服务器和数据库的负载均衡以及反向代理

    大乐透基本走势图100期:理解web服务器和数据库的负载均衡以及反向代理

    时间:2014-05-12来源:源码库 作者:源码库 文章热度:

    双色球基本走势图表图 www.jpkp.net 但是若该网站平均每秒的请求是200多次,那么问题就来了:这已经是最好的web服务器了,我该怎么办?同样的情景也适用于数据库。要解决这种问题,就需要了解“负载均衡”的原理了。

    web服务器如何做负载均衡

    为web服务器做负载均衡适用的的较多的方式是DNS重定向和反向代理,其他的方式原理也是很类似。

    我们多次ping一下百度,会发现回复的IP会有所不同,例如第一次的结果为:

    复制代码 代码如下:


    正在 Ping baidu.com [220.181.111.86] 具有 32 字节的数据:
    来自 220.181.111.86 的回复: 字节=32 时间=27ms TTL=51
    来自 220.181.111.86 的回复: 字节=32 时间=27ms TTL=51
    来自 220.181.111.86 的回复: 字节=32 时间=27ms TTL=51


    过一会再Ping一次,结果可能就变了:

    复制代码 代码如下:


    正在 Ping baidu.com [220.181.111.85] 具有 32 字节的数据:
    来自 220.181.111.85 的回复: 字节=32 时间=27ms TTL=51
    来自 220.181.111.85 的回复: 字节=32 时间=27ms TTL=51
    来自 220.181.111.85 的回复: 字节=32 时间=29ms TTL=51


    使用nslookup命令可以看到多个ip与baidu.com对应。在这里用到的就是DNS重定向技术,原理很简单:DNS服务器保存某域名对应的多个IP,客户端发出DNS请求时DNS服务器根据算法将IP发回给客户端;发送回的一般是一个IP地址集合,但是每次的排序不同,第一次的第一个IP为201.11.11.1,第二次的第一个可能是201.11.11.2,客户端使用的是第一个IP——简单地说,就是客户端每次获取的域名的IP可能不同。不同的IP对应不同的web服务器,但是这些web服务器的内容应该是一样的。

    我们从下图理解反向代理:

    理解web服务器和数据库的负载均衡以及反向代理



    客户端向反向代理发送HTTP请求报文(若该网站有域名,域名的IP是反向代理服务器的外网IP),反向代理将请求报文随机发送给一个web服务器,web服务器将HTTP响应报文发送给反向代理,反向代理再将这报文返回给客户端。既然这样简单,我们就可以着手实现一个简单的反向代理。

    在linux mint 15 下安装apache和nginx服务器,在apache的80端口的文档根目录下创建文件index.html,内容如下:

    复制代码 代码如下:


    <html>
    <head>
    <title>index</title>
    </head>
    <body>
    <h1>hello, i am apache</h1>
    </body>
    </html>


    在nginx的8080端口的文档根目录下创建文件index.html,内容如下:

    复制代码 代码如下:


    <html>
    <head>
    <title>index</title>
    </head>
    <body>
    <h1>hello, i am nginx</h1>
    </body>
    </html>


    创建源文件simple_reverse_proxy.py,内容如下:

    复制代码 代码如下:


    #!/usr/bin/python
    #-*-encoding:utf8-*-
    '''
    这是一个简单的反向代理服务器
    '''
    import BaseHTTPServer
    import urllib2
    HOST_NAME = '127.0.0.1'
    PORT_NUMBER = 8081  #端口
    SERVER_URL=('//127.0.0.1:80','//127.0.0.1:8080')
    server_choice = 0
    class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
        def do_GET(s):
            """response to a GET request"""
            global server_choice
            url = SERVER_URL[server_choice]
            print url
            server_choice = (server_choice + 1) % 2
            headers = {'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
            try:
                req = urllib2.Request(url, None, headers)
                response = urllib2.urlopen(req)
                html = response.read()
                #print html
                s.send_response(200);
                s.send_header("Content-type", "text/html")
                s.end_headers()
                s.wfile.write(html)
            except:
                s.send_response(404);
                s.send_header("Content-type", "text/html")
                s.end_headers()
                s.wfile.write('<h2>404</h2>')
    if __name__ == '__main__':
        server_class = BaseHTTPServer.HTTPServer
        httpd = server_class((HOST_NAME, PORT_NUMBER), MyHandler)
        try:
            httpd.serve_forever()
        except KeyboardInterrupt:
            pass
        httpd.server_close()


    启动apache、nginx,并运行simple_reverse_proxy.py。我们在浏览器中打开:8081,我们可以看到:

    理解web服务器和数据库的负载均衡以及反向代理


    刷新一下可以看到:

    理解web服务器和数据库的负载均衡以及反向代理



    而simple_reverse_proxy.py会有以下信息输出:

    复制代码 代码如下:

    相关服务器教程
    相关资源下载

  • 新时代 新担当 新作为 2019-09-21
  • 老骥伏枥志消防 走笔成言驱火患 2019-09-21
  • 安全上网 七招教你避防风险 2019-09-20
  • 价值-热门标签-华商生活 2019-09-19
  • 寻找三秦非遗:二月二,大荔县阿寿村药王庙会赛花馍 2019-09-19
  • [酷]此文已经把马克思理论、边际理论、人类需求层次理论、生物学理论、心理学理论、社会管理学理论等理论在哲学层面完美融合了! 2019-09-12
  • 梁家河,一个中国村庄的幸福与奋斗 2019-09-10
  • 建好欧美同学会 助力伟大中国梦 2019-09-10
  • 上海抚州商会返乡考察团来抚考察 2019-09-05
  • 匠心直播官网一振兴重庆传统手工艺 2019-08-30
  • 一线城市,已不适合传统超市生存 2019-08-24
  • 不忘初心 砥砺奋进 2019-08-24
  • 了解互联网金融诈骗手法 提高防范意识 2019-08-20
  • 推动乡村产业振兴(思想纵横) 2019-08-20
  • 木地板铺上墙,自然又有范! 2019-08-16
  • 河北快3加奖细则公告 扑克牌所有图片大全 开乐彩最近消息 七乐彩为什么没人买 快乐10分开奖直播 广东26选5走势图 凤凰彩票官网验证 吉林快三一定牛 安徽25选5开奖号码 财运最强的手机号码 广西快乐十分玩法中奖规则 双色球在线机选一注 25选7开奖结果 12选择5开奖结果 3D中奖秘籍