Document and test By zhang qing hua,xanderzhang@live.com
qq group:4733369
说明
多站点是高并发情况下,负载均衡的一种实现方案。通过将静态文件和动态请求, 各种资源的有效分离,实现均衡的目的 。从而达到提升网站性能的目的。
实现方案:
DNS 服务器负责网内的域管理。
当请求到来时,web服务器解析请求格式,请静态文件【image,css,pdf等】直接转到静态文件服务器。
动态的资源请求有其他服务器处理。
当创建静态资源时 ,动态请求域内的主机,将静态资源通过nfs挂载的目录,存至静态文件服务器 。静态文件服务器对处理动态请求域的主机是透明的 。
具体平台搭建方法
以下应用服务器均基于 ubuntu sever 8.10
DNS server 的搭建
Bind9简介
BIND(Berkeley Internet Name Domain) 是Domain Name System协议的一个实现 ,提供了dns主要功能的开放实现 ,包括:
域名服务器
Dns解析库函数
Dns服务器运行调试所用的工具
主页: www.isc.org
安装方法:
首先 更新系统 sudo apt-get update [也可以不更新]
安装 bind9 sudo apt-get install bind9
执行以上命令 , apt包管理器会 将bind9相关的工具包安装 ,包括dnsutils
假设以上均成功 ,测试 dns server 默认的53号端口:
telnet localhost 53
bind 的配置文件 在 ubuntu上的位置是 :/etc/bind
执行 ls –al /etc/bind ,会有一些 named.conf db 开头的文件 。
其中首要文件 是named.conf ,这个是bind9 的配置文件,其中包含了 named.conf.local 文件。 named.conf.local 是就是我们使用的文件:
Sudo vim named.conf.local
将下面的字串输入 named.conf.local :
zone “enjoytalk.org” {
type master ;
file “/etc/bind/db.enjoytalk.org”;
}
zone “0.168.192.in-addr.arpa” {
type master; // 定义此区为主服务器
file “/etc/bind/db.0.168.192”; //指定资源文件的位置
}
以上字段的详细含义请查看isc.org上的文档。
下面 实现 以上定义的两个区的 正向资源文件 和 反向资源文件 。正向资源文件用于解析 从域名 到 ip的映射 。反向文件 用户 ip到域名的映射。
在 /etc/bind 下 创建两个文件如下:
Sudo touch db.enjoytalk.org db.0.168.192
执行以下命令 ,编辑 db.enjoytalk.org
Sudo vim db.enjoytalk.org
输入以下内容【括号里面的数据不要改动】:
; db.enjoytalk.org
;
$TTL 604800
@ IN SOA enjoytalk.org. root.enjoytalk.org. (
2009070701;Seril
604800;Refresh
86400;Retry
2419200;Expire
604800
); Negative Catche TTL
//DNS 主机配置在14号主机上
@ IN NS ns
@ IN A 192.168.0.14
ns IN A 192.168.0.14
//添加 A 记录
www IN A 192.168.0.2
images IN A 192.168.0.14
course IN A 192.168.0.2
user IN A 192.168.0.2
【对 192.168.0.2 和 192.168.0.14 主机的说明:
192.168.0.2 存放动态请求, course.enjoytalk.org ,user.enjoytalk.org等
192.168.0.14 存放静态文件 images.enjoytalk.org】
下面编辑反向文件 :sudo vim db.0.168.192
@ IN SOA enjoytalk.org. root.enjoytalk.org. (
2009070701;Seril
604800;Refresh
86400;Retry
2419200;Expire
604800
);Negative Catche TTL
// 添加对应的反向记录 【A记录 ,ns记录,mx记录等】
@ IN ns enjoytalk.org.
2 IN PTR www.enjoytalk.org.
14 IN PTR images.enjoytalk.org.
2 IN PTR course.enjoytalk.org.
2 IN PTR user.enjoytalk.org
推出保存 并测试
需要注意的地方:
如果不知道 dns里面的一些专业术语,请网上查看 。
指向 根 的域名 后面有个 “.” ,也就是 enjoytalk.org. 这个点号 代码域内的当前目录
@ 等价于 enjoytalk.org. 也就是指向域内的顶级目录
如果需要添加 user.enjoytalk.org 仅需修改以上两个文件 添加其对应的记录即可。
测试:
输入 nslookup
进入 输入状态 , 输入 www.enjoytalk.org 查看返回结果
Lighttpd的搭建
详细搭建过程 请参考 之前发的web server 配置文档。
下面只写 与 多站点相关的 lighttpd的配置。
配置 主要配置文件:
执行命令: cd /etc/lighttpd
找到以下行, 并修改为:
server.document-root = "/var/www/enjoytalk_index/public/"
以上配置会 将/var/www/enjoytalk_index/public/ 工程配置为 lighttpd 的文档根目录
确保端口为80
server.port = 80
其他的配置 按之前的配置即可 。
配置运行rails 应用的 fastcgi:
执行 命令 : cd /etc/lighttpd
进入 目录 : cd conf-enabled , 此目录下 包含 正在使用的 lighttpd 的模块 ,包括fastcgi .
执行 命令: sudo vim 10-fastcgi.conf
添加以下内容 【经过测试】
$HTTP["host"] == "www.enjoytalk.org" {
server.document-root = "/var/www/enjoytalk_index/public/"
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = (
".fcgi" =>(
"www.enjoytalk.org" => (
"min-procs" => 1,
"max-procs" => 5,
"socket" => "/var/www/enjoytalk_index/tmp/sockets/rails-fcgi.socket",
"bin-path" => "/var/www/enjoytalk_index/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "development")
)
)
)
}
以上 内容 会生成 针对 enjoytalk_index工程的5个ruby cgi进程 ,用于轮流执行用于请求。max-procs 这些参数 可以根据实际需要设定。
添加 course 站点的处理进程配置:
$HTTP["host"] == "course.enjoytalk.org" {
server.document-root = "/var/www/enjoytalk_course/public/"
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = (
".fcgi" =>(
"course.enjoytalk.org" => (
"min-procs" => 1,
"max-procs" => 5,
"socket" => "/var/www/enjoytalk_course/tmp/sockets/rails-fcgi.socket",
"bin-path" => "/var/www/enjoytalk_course/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "development")
)
)
)
}
添加 user 站点的处理进程:
$HTTP["host"] == "user.enjoytalk.org" {
server.document-root = "/var/www/enjoytalk_user/public/"
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = (
".fcgi" =>(
"user.enjoytalk.org" => (
"min-procs" => 1,
"max-procs" => 5,
"socket" => "/var/www/enjoytalk_user/tmp/sockets/rails-fcgi.socket",
"bin-path" => "/var/www/enjoytalk_user/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "development")
)
)
)
}
在产品模式下 ,修改环境变量为 production 即可 。
以上配置完毕, 测试:
查看 80 端口:telnet localhost 80
或者 直接查看 生成的进程:
执行命令: ps aux , 进程列表中会产生15个类似的进程:
按照 fastcgi的运行原理, 这个15个进程会一直驻守后台。
www-data 13986 0.0 1.1 26552 23728 ? S 10:51 0:01 /usr/bin/ruby1.8 /var/www/enjoytalk_index/public/dispatch.fcgi
NFS平台的搭建
首先 安装 nfs 的服务器
执行以下命令: sudo apt-get install nfs-kernel-server
以上命令 会将 nfs 相关的软件 , 全部安装, 包括客户端 nfs-common , portmap ,如果没有 portmap ,需要 重新安装: sudo apt-get install portmap 。
执行以下命令 : sudo dpkg-reconfigure portmap , 会产生一个命令行界面,
选择 no 即可。
配置挂载权限,
添加以下内容:
/var/www/images 192.168.0.2(rw,sync,no_root_squash)
查看服务器上 可挂在的 nfs 目录:
Showmount –e
进入 需要挂在nfs目录的机器 ,我这是 192.168.0.2 , 首先安装 nfs客户端 ,nfs-common。
执行 一下命令: sudo mount -o nolock 192.168.0.14:/var/www/images /var/www/enjoytalk_index/public/images
这样 , 192.168.0.14 上的图片目录被挂到了 2上 ,当访问14的图片地址时 ,通过访问域 images.enjoytalk.org/a.jpg , 就可以找到图片对应的地址 。
至此 多站点架构的站点平台基本搭建完毕 ,如需添加新站点 ,或者 需要分离静态文件,只有挂载一个 静态目录即可 。静态文件会被 静态文件服务器解析 ,并返回相应资源。
分享到:
相关推荐
这将安装Internet Information Services(IIS),它是Microsoft提供的一个用于托管Web应用程序和网站的平台。 2. **添加主机记录**:在DNS服务器上,创建A记录或CNAME记录,将特定的域名指向服务器的IP地址。这允许...
MySQL的安装类似,需要创建数据库和用户,配置权限,以供Web应用连接使用。 3.3 Apache与PHP安装: Apache是流行的Web服务器,安装后需配置httpd.conf文件以启用PHP支持。PHP是服务器端脚本语言,用于处理动态内容...
### Java Web开发环境搭建知识点详解 #### 一、引言 随着互联网的发展,Java作为一种完全面向对象、具有平台无关性、安全性高...这样的环境能够满足Java Web应用的开发需求,帮助开发者快速构建高质量的Web应用程序。
阿里云服务器ECS(Elastic Compute Service)是阿里云提供的一种弹性云计算服务,它为用户提供了便捷、稳定、安全的服务器资源,是搭建网站和运行Web应用的理想平台。 二、Web环境搭建 1. LNMP环境搭建:LNMP是...
### Hadoop分布式平台搭建手册 #### 一、安装开发集群于Windows环境 ##### 目的 本章节的主要目的是介绍如何在多台计算机上(本文档案例中为4台)搭建Hadoop开发集群,并确保读者能够运行由Hadoop开发者提供的示例...
【标题】"可在IIS运行的Web服务站点" 指的是使用微软的Internet Information Services (IIS) 作为Web服务器来托管一个Web应用程序。IIS是Windows操作系统的一部分,为开发者提供了在Windows环境下构建和发布Web内容...
在WampServer中配置多站点是一项常见的任务,这允许你在同一台服务器上运行多个独立的Web应用程序。以下是如何配置多站点的步骤: 1. 创建一个新的虚拟主机:在`C:\wamp\bin\apache\apache{version}\conf\extra`...
结合博客、相册、文件、迷你博客、论坛、活动、圈子、资讯等应用模块,可以快速的搭建具有SNS特征的在线社区。借助SpaceBuilder平台的服务(用户、朋友、私信、邀请、权限、审核、隐私、积分、通知、动态、标签、...
【Web应用服务基础】 在IT领域,Web应用服务扮演着至关重要的角色,它们构成...通过本章的学习,读者将具备在Red Hat Linux环境下搭建、配置和管理Web应用服务的能力,为构建和维护高效、可靠的Web服务奠定坚实基础。
IIS是微软提供的一个用于构建和托管Web应用程序、FTP(文件传输协议)和Gopher服务的全面平台,尤其在Windows操作系统环境中。 在任务一中,我们首先认识了IIS。IIS 5.0作为Windows 2000的一部分,它强化了安装和...
【Web应用服务概述】 Web应用服务是通过互联网提供动态内容和服务的一种方式,广泛应用于网站、电子商务、社交媒体等各个领域。本章重点介绍了在Red Hat Linux系统上搭建和管理Web服务,涉及Apache服务器的安装、...
【Web应用安全】:在网络安全领域,Web应用安全是一个至关重要的方面,因为它涉及到用户数据的保护和系统的完整性。本文将重点介绍如何利用Sqlmap工具进行SQL注入攻击的演示,以及如何搭建测试环境。 Sqlmap是一种...
【Web应用服务】是互联网基础设施的核心组成部分,尤其是Apache Web服务器,它是全球最广泛使用的Web服务器软件之一。Apache因其开源、免费以及高度可定制性而备受青睐。本章深入讲解了在Red Hat Linux环境下如何...
本文件《基于CORS的GPS数据处理Web平台设计及其应用》详细介绍了如何利用这一系统设计并应用一套GPS数据处理Web平台。 在文章中,作者洪伟以广东省国土资源测绘院卫星定位技术应用中心为背景,详述了该中心如何利用...
Web服务器的作用在于存储Web文件,管理这些文件的分发,并支持各类Web应用程序。Web服务器不仅允许用户通过HTTP协议访问网站,还是发布信息、查询资料、处理数据、观看视频等多种应用的基础平台。 【IIS(Internet ...
搭建服务器平台和创建数据库 本节资源摘要信息将详细介绍搭建服务器平台和创建数据库的过程,包括搭建服务器平台、创建数据库、ASP 网站开发环境的构建、管理和配置 ASP 网站、ASP 简介、创建数据库等内容。 搭建...
【Linux下Web Server的搭建研究】 在互联网时代,Web Server是不可或缺...通过以上步骤,读者可以了解到在Linux环境下,如何利用Apache搭建并配置多站点Web服务器,这为满足企业或个人的需求提供了基础性的技术指导。
本配置文件"JEECMS站点群配置.zip"主要涉及了如何在Apache2服务器上通过JK模块与Tomcat6应用服务器集成,以及配合MySQL5数据库来搭建和管理多个JEECMS站点。 **一、Apache2服务器配置** Apache2是广泛使用的Web...
6. **安装Express框架**: Express是Node.js中最流行的Web应用框架,它简化了HTTP服务器的构建。输入`npm install express --save`,这个命令会在你的项目中添加Express作为依赖,并在package.json中记录下来。 7. *...