小型网站服务器构架方案.docx

上传人:b****6 文档编号:8325682 上传时间:2023-01-30 格式:DOCX 页数:37 大小:1,016.15KB
下载 相关 举报
小型网站服务器构架方案.docx_第1页
第1页 / 共37页
小型网站服务器构架方案.docx_第2页
第2页 / 共37页
小型网站服务器构架方案.docx_第3页
第3页 / 共37页
小型网站服务器构架方案.docx_第4页
第4页 / 共37页
小型网站服务器构架方案.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

小型网站服务器构架方案.docx

《小型网站服务器构架方案.docx》由会员分享,可在线阅读,更多相关《小型网站服务器构架方案.docx(37页珍藏版)》请在冰豆网上搜索。

小型网站服务器构架方案.docx

小型网站服务器构架方案

 

小型网站服务器构建方案

 

 

 

一.网站平台的项目分析

1.平台性能要求

搭建一个本地新闻门户网站访问平台,该平台必须能符合以下几点:

性能需求

备注

满足一天3-5万PV访问量

应对高并发访问,具有负载均衡功能;

具有安全策略,抵御一定程度网络攻击

防暴力破解等

备份重要数据

脚本定时备份

监控平台数据,随时报告异常情况

服务器容灾功能

重要服务器主备运行

平台自动化运维,降低人工维护成本

shell脚本自动化管理

2.平台并发量分析

日访问3到5万PV是一个很小的流量访问。

可以假设三种访问情况:

(1)最差情况:

50000个请求同时发生,那么最大并发请求数应为50000

(2)最好情况:

50000个请求在时间上均匀地发起请求。

那么并发数为50000/24*60*60=0.579。

折合一分钟内之有34个请求,基本上就没有并发,只是单个执行。

(3)80/20原则:

但是在现实生活中,以上两种情况发生的概率很小。

根据统计学原理,采用80/20原则计算并发用户数。

50000*0.8/(8*60*60*0.2)=6.94,即每秒约有7个并发。

二.网站平台集群架构设计

1.网站平台集群服务器列表

根据项目需求和并发量,考虑网站的高可用性,和未来网站业务进步,访问并发量增大,平台的服务器集群表如下:

服务器名称

功能描述

ip地址

操作系统

硬件信息

m-proxy1

反向代理服务器

172.18.109.232

Centos6.5/64

双核/2G内存

m-proxy2

备反向代理服务器

172.18.109.234

Centos6.5/64

双核/2G内存

web1

网站服务器1

提供读写分离

172.18.109.235

Centos6.5/64

双核/2G内存

web2

网站服务器2

提供session共享

172.18.109.236

Centos6.5/64

双核/2G内存

mysql1

主数据库服务器

172.18.109.237

Centos6.5/64

双核/2G内存

mysql2

从数据库服务器

172.18.109.238

Centos6.5/64

双核/2G内存

admin

管理服务器

提供备份、装机、监控、web网页分发功能

172.18.109.239

Centos6.5/64

四核/8G内存

2.网站平台项目拓扑图

网站平台整体拓扑如下:

三.构建服务器集群网站平台

1.安装管理服务器admin

1.1安装并初始化系统

1)光盘安装操作系统

启动一台服务器,使用光盘安装CentOS6.5操作系统,安装类型为基本安装(安装过程略)。

2)初始化系统

操作系统安装完成后,配置/etc/sysconfig/network-scripts/ifcfg-eth0网卡配置文件。

修改IP为172.18.109.239,网关为172.18.109.254指向路由器的地址。

(集群服务器的所有数据通过路由器转发出去),网卡部分主要的配置如下:

ONBOOT=yes

BOOTPROTO=none

IPADDR=172.18.109.239

NETMASK=255.255.255.0

GATEWAY=172.18.109.254

关闭防火墙和SElinux,修改主机名

chkconfigiptablesoff;/etc/init.d/iptablesstop

setenforce0;sed-i"s/^SELINUX\=enforcing/SELINUX\=disabled/g"/etc/selinux/config

vi/etc/sysconfig/network

修改HOSTNAME=localhost为HOSTNAME=admin

1.2管理服务器安装kickstart

由于服务器过多,可以在管理服务器上搭建kickstart来自动安装其余的集群服务器,减少手工操作。

1)安装配置DHCP服务器

使用yum安装DHCP服务器

yum-yinstalldhcp

2)配置dhcp服务器

cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample/etc/dhcp/dhcpd.conf

vi!

$

添加下列参数:

subnet172.18.109.0netmask255.255.255.0{

range172.18109.100172.18.109.249;

optiondomain-name-servers61.139.2.69;

optionrouters172.18.109.254;

optionbroadcast-address172.18.109.255;

default-lease-time600;

max-lease-time7200;

next-server172.18.109.241;

filename“pxelinux.0”;

}

chkconfigdhcpdon

servicedhcpdstart

3)安装配置tftp

yum-yinstalltftptftp-serverxinetd

修改tftp配置文件,指定共享目录和开机启动

vi/etc/xinetd.d/tftp

修改的内容:

server_args=-s/tftpboot

disable=no

挂载光盘,并拷贝光盘中的文件和kickstart文件到tftp共享目录下,并配置引导启动文件,过程代码如下:

yum-yinstallsystem-config-kickstartglib2-delvel

mkdir/mnt/sr0

mkdir-p/tftpboot/pxelinux.cfg

mount/dev/sr0/mnt/sr0

cp/usr/share/syslinux/pxelinux.0/tftpboot/ 

cp/mnt/sr0/images/pxeboot/initrd.img/tftpboot/

cp/mnt/sr0/images/pxeboot/vmlinuz/tftpboot/

cp/mnt/sr0/isolinux/isolinux.cfg/tftpboot/pxelinux.cfg/default

 chmod644/tftpboot/pxelinux.cfg/default

配置tftp共享目录中的引导启动配置文件

vim/tftpboot/pxelinux.cfg/default

修改第一行:

defaultvesamenu.c32linux

在lablelinux项下,最后添加

ks=ftp:

//172.18.109.241/ks.cfg

servicexinetdstart

4)安装vsftp服务

yum-yinysallvsftpd

chkconfigvsftpdstart

servicevsftpdstart

5)配置kickstart

system-config-kickstart

进入图形界面配置系统安装所需操作(配置过程略),配置完成后,在”安装后脚本”此步,使用/bin/bash解释器,编写一个脚本来关闭iptables和selinux,脚本内容如下:

chkconfigiptablesoff;/etc/init.d/iptablesstop

setenforce0;sed-i"s/^SELINUX\=enforcing/SELINUX\=disabled/g"/etc/selinux/config

完成后,生成配置文件ks.cfg,将配置文件拷贝到ftp共享目录中,并为ftp准备挂载好系统安装文件

cp/root/ks.cfg/var/ftp

umount/dev/sr0

mount/dev/sr0/var/ftp/pub

echo"mount/dev/sr0/var/ftp/pub/">>/etc/rc.local

servicevsftpdrestart

2.搭建反向代理主备服务器

反向代理服务器作为网站平台的前端,负责将web用户的请求按轮询方式发送给后端的真实服务器,并将静态请求交给nginx服务器,动态请求提交给后端的apache服务器。

服务器使用nginx在网络模型第七层提供负载均衡功能。

搭建步骤如下:

2.1配置反向代理主服务器

1)安装系统、配置IP

修改bios中启动项为网络开机启动,自动连接到管理服务器使用kickstart安装好操作系统。

安装完成后,修改bios启动项,进入操作系统。

修改网卡配置文件,修改ip为172.18.109.232(修改方式和其他网卡参数参照admin服务器的网卡配置)

2)安装nginx

使用yum解决nginx依赖包

groupaddwww

useradd-s/sbin/nologin-gwwwwww

yum-yinstallgccgcc-c++autoconfautomakezlibzlib-developensslopenssl-develpcre*

xftp上传nginx源码安装包,编译安装nginx

tar-zxvfnginx-1.8.1.tar.gz

cdnginx-1.8.1/

./configure--user=www--group=www--prefix=/usr/local/nginx--with-http_stub_status_module--with-http_ssl_module--with-http_gzip_static_module--with-ipv6--with-pcre

make&&makeinstall

3)配置nginx进行反向代理和负载均衡

nginx的静态并发处理能力比apache要好,但是动态处理不如apache,所以将静态的web请求交给nginx服务器处理,而动态的php请求交给后端的两个apache服务器轮流处理。

配置过程如下:

新建一个配置文件

vi/usr/local/nginx/conf/proxy.conf

配置文件内容如下

upstreamweb{

#ip_hash

server172.18.109.235:

80weight=1max_fails=2fail_timeout=30s;

server172.18.109.236:

80weight=1max_fails=2fail_timeout=30s;

}

server{

listen80;

server_name;

indexindex.htmlindex.htmindex.php;

root/home/wwwroot/default;

#网页文件主目录

location~.*\.(php|php5)?

${

proxy_next_upstreamhttp_502http_504errortimeoutinvalid_header;

proxy_set_headerHost$host;

proxy_set_headerX-Forwarded-For$remote_addr;

#使后端apache能获得访问者的ip地址

proxy_http_version1.1

#proxy_redirectoff;

#proxy_pass端口不为80时,使用

proxy_passhttp:

//web;

}

}

在主配置文件中引用此配置文件:

vi/usr/local/nginx/conf/nginx.conf

第一行添加参数,使nginx使用www用户运行

userwwwwww

在字段http{......}括号中修改:

删除字段server{......}

在http{......}括号中末尾,添加includeproxy.conf;

创建网页目录,并添加权限

mkdir-p/home/wwwroot/default

setfacl-mu:

www:

rwx-R/home/wwwroot/default

4)安装和配置keepalived

为了防止前端服务器宕机出现业务中断,造成不必要的损失。

所以使用keepalived来实现反向代理服务器的高可用。

安装过程如下:

上传keepalived源码安装包到服务器上

yum-yinstallkernel-devel

ln-s/usr/src/kernels/2.6.32-642.13.1.el6.i686//usr/src/linux/

tar-zxvfkeepalived-1.2.15.tar.gz

cdkeepalived-1.2.15

./configure

mkdir/etc/keepalived

cp/usr/local/etc/rc.d/init.d/keepalived/etc/init.d/

cp/usr/local/etc/sysconfig/keepalived/etc/sysconfig/

cp/usr/local/etc/keepalived/keepalived.conf/etc/keepalived/

cp/usr/local/sbin/keepalived/usr/sbin/

配置keepalived配置文件:

vim/etc/keepalived/keepalived.conf

修改如下:

servicekeepalivedstart

chkconfigkeepalivedon

查看vip是否添加:

ipadd

2.2配置备反向代理服务器

备服务器和服务器基本相同:

1)重复主反向代理服务器前5步骤

修改网卡配置文件时,修改ip为172.18.109.234

2)配置keepalived配置文件

备服务器配置keepalived配置文件,如下

servicekeepalivedstart

chkconfigkeepalivedon

3.安装网站服务器web1和web2

网站服务器web1和web2作为处理动态php请求的服务器,使用apache作为网站服务器。

3.1安装网站服务器web1

1)安装操作系统

修改bios中启动项为网络开机启动,自动连接到管理服务器使用kickstart安装好操作系统。

安装完成后,修改bios启动项,进入操作系统。

修改网卡配置文件,修改ip为172.18.109.235(修改方式和其他网卡参数参照admin服务器的网卡配置)

2)安装和配置apache服务器

首先xftp上传安装apache服务器所需依赖包:

apr-1.4.6.tar.gz、apr-util-1.4.1.tar.gz、pcre-8.34.tar.gz

yum-yinstallmakegccgcc-c++opensslopenssl-devel

tar-zxvfapr-1.4.6.tar.gz

cdapr-1.4.6

./configure--prefix=/usr/local/apr

make&&makeinstall

tar-zxvfapr-util-1.4.1.tar.gz

cdapr-util-1.4.1

./configure--prefix=/usr/local/apr-util/--with-apr=/usr/local/apr/bin/apr-1-config

make&&makeinstall

tar-zxvfpcre-8.34.tar.gz

cdpcre-8.34

./configure--prefix=/usr/local/pcre

make&&makeinstall

xftp上传apache安装包:

httpd-2.4.7.tar.gz

tar-zxvfhttpd-2.4.7.tar.gz

cdhttpd-2.4.7

./configure--prefix=/usr/local/apache--enable-so--enable-rewrite--enable-ssl--with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util/--with-pcre=/usr/local/pcre/

make&&makeinstall

生成启动脚本:

cp/usr/local/apache/bin/apachectl/etc/init.d/httpd

修改/etc/init.d/httpd脚本文件

vim/etc/init.d/httpd

在#/bin/bash下添加2行:

启动关闭顺序和描述行,内容如下:

#chkconfig:

3456633

#description:

apacheserver

修改完成后

chkconfig--addhttpd

chkconfighttpdon

修改apache主配置文件,指定网站文件目录

vim/usr/local/apache/conf/httpd.conf

修改DocumentRoot"/usr/local/apache/htdocs"为

DocumentRoot"/home/wwwroot/default"

修改

修改#ServerName:

80为

ServerName127.0.0.1:

80

创建网页目录,并添加权限

mkdir-p/home/wwwroot/default

setfacl-mu:

daemon:

rwx-R/home/wwwroot/default

3)安装和配置php服务器

安装所需的依赖包

yum-yinstallphp-mcryptlibmcryptlibmcrypt-develautoconffreetypegdlibmcryptlibpnglibpng-devellibjpeglibxml2libxml2-develzlibcurlcurl-devel

xftp上传php安装包:

php-5.4.25.tar.gz

tar-zxvfphp-5.4.25.tar.gz

cdphp-5.4.25

./configure--prefix=/usr/local/php/\

--with-apxs2=/usr/local/apache/bin/apxs\

--enable-mbstring\

--with-curl\

--with-gd\

--enable-fpm\

--with-config-file-path=/usr/local/php/etc/

make&&makeinstall

cpphp.ini-production/usr/local/php/etc/php.ini

修改apache的主配置文件,使它支持php

vi/usr/local/apache/conf/httpd.conf

在配置文件末尾添加:

AddTypeapplication/x-httpd-php.php.phtml

修改

DirectoryIndexindex.html

为:

DirectoryIndexindex.htmlindex.php

生成测试文件

echo“

phpinfo();?

>”>>/home/wwwroot/default/index.php

servicehttpdrestart

在浏览器输入服务器ip地址,查看php文件是否解析成功

4)安装memcache

当使用session登录的用户,多个动态请求经过反向代理服务器的负载均衡作用,分别请求在两台不同的web服务器上时,由于session只保存在其中一台web服务器上,会造成用户的自动登出。

因此需要将session共享在2个服务器上,使服务器可以同时读取到用户的session。

使用memcache服务进行session共享,基于内存的存储可以达到session的快速读取,降低用户登录时需要的时间。

xftp上传memcache源码包

解决依赖包

yum-yinstallzlib-devel

tar-zxvfmemcache-3.0.8

cdmemcache-3.0.8

/usr/local/php/bin/phpize

./configure--with-php-config=/usr/local/php/bin/php-config

make&&makeinstall

修改php.ini配置文件,加载memcache模块,并且指定session存放位置

vi/usr/local/php/etc/php.ini

修改;extension_dir="./"为

extension_dir="/usr/local/php/lib/php/extensions/no-debug-zts-20100525/"

并在其下添加一行

extension="memcache.so";

修改session.save_handler=files为

session.save_handler=memcache

并在其下添加一行

session.save_path="tcp:

//172.18.109.236:

11211"

#ip地址为session服务端的地址

重启apache服务器

servicehttpdrestart

刷新apache测试页,可以看到memcache模块

5)安装读写分离mysql-proxy

读写分离,使mysql主库进行数据增、删、改操作,mysql从库进行查询操作。

而数据库主从复制把事务性查询导致的变更同步到集群中的从库。

安装依赖包和mysql-server环境

yum-yinstallluamysql-server

xftp上传mysql-proxy软件包

tar-zxvfmysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz-C/usr/local/

cd/usr/local

mvmysql-proxy-0.8.5-linux-el6-x86-64bit/mysql-proxy

将mysq-proxy执行命令写入环境变量

echo"exportPATH=/usr/local/mysql-proxy/bin/:

/usr/local/mysql/bin:

$PATH">>/etc/profile

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1