文档章节

细谈普通网站的后台构建实战----my note

crossmix
 crossmix
发布于 2016/03/22 16:12
字数 1516
阅读 82
收藏 9

   

  比如你建一个普通网站,流量不高。如何设计




普通PC环境,大约同时支持2000到3000的并发量,当然,我不排除有高手进行后台服务器优化,实现更高的并发量。

一些大型的网站会采取“分流”的方式去将连接平均分摊到后台服务器,例如前面一台主机负责接收连接和与后台服务器的负载均衡。如下图:

 

实例如途中,一共需要配置了多台服务器。

server1——装有Centos6.3,Web server 为Nginx,主要功能对网站用户进行负载均衡,将访问派送到后台的Webserver。

server2——装有Centos6.3,基本配置为LAMP,或者LNMP。两者皆有优缺点。主要用户保存网站,数据存储和网站数据处理等工作。

server3——同上

server4——同上

……

……

同时,为了保证数据的一致性,我们会采取一种数据库同步的操作,利用1主2从,最后再做加入新从的测试。其实之前我也做过,具体可以参照之前写的博客《Mysql 复制(Replication)实现》

正式开始配置

先分别为4台server安装Centos6.3,不选择安装Webserver,Database和PHP等,只安装Centos。

配置辅助负载均衡的server前,先配置后台server,这里,我选择配置LNMP,具体配置方法可以参照我博文《Centos 6.2 实际工作环境搭建(LNMP)》

也可以使用《一键安装LANMP》

这里我所使用的是一键安装LANMP版本,配置比较简单,比较适合新手。

下载安装

wget http://dl.wdlinux.cn:5180/lanmp_v2.4.tar.gz

tar zxvf lanmp_v2.4.tar.gz

sh in.sh

4个可选安装,如下图

1,2,3 是安装独立的环境,不可自由切换nginx,apache,nginx+apache应用环境

4 是安装所有,即可自由切换nginx,apache,nginx+apache的应用环境

编译安装比较慢,现只提供在CentOS 5.X/wdlinux_base 5.X/wdos 1.X 系统下的RPM安装,5分钟就可以

也可以直接下载wdos的安装,集成最新的wdcp,不过目前只有32位

具体可看 http://www.wdlinux.cn/bbs/thread-2431-1-1.html 

虽然安装LANMP,但实际应用的时候会将服务系形似分配成LNMP或者LAMP。

测试通过就继续安装,分别安装了3台。

测试通过后,实际环境为:

1.LN(Centos6.3+Nginx)用于负载均衡---IP地址:192.168.1.100

2.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服务器---IP地址:192.168.1.171

3.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服务器---IP地址:192.168.1.172

4.LNMP(Centos6.3+Nginx+Mysql+PHP)Web服务器---IP地址:192.168.1.173

5.LNMP(Centos6.3+Nginx+Mysql+PHP)备用Web服务器---IP地址:192.168.1.174

Mysql复制

按照一开始的架构图,需要1主2从,所以开始配置mysql复制,具体可以参照之前写的博客《Mysql 复制(Replication)实现》 使用前要先说明,如果使用一键安装版,就需要将read_only = 1 这个选项去掉,不能添加。这个只读设置会影响一键安装版的PHP管理页面。

2号服务器的Mysql为主,3号,4号的为从。

配置过程中,要将2个数据库列出到排外,不需要进行复制同步。避免数据库出错。


  
  
  1. #主/etc/my.cnf  
  2. binlog_ignore_db=mysql,wdcpdb  
  3. #从/etc/my.cnf  
  4. replicate-ignore-db=mysql  
  5. replicate-ignore-db=wdcpdb 

配置完毕后,在两天从中输入:


  
  
  1. SHOW SLAVE STATUS\G 

查看复制状态,当看见


  
  
  1. Slave_IO_Running: Yes  
  2. Slave_SQL_Running: Yes 

就已经证明复制已经可以正常运作。在主随便创建一个数据库,然后在从刷新,就会出现刚复制过来的数据库。

虚拟主机

做到这一步,基本就已经完成,剩下的就是建立虚拟主机放置网站和设定Nginx负载均衡。

打开浏览器输入192.168.1.171:8080,进入wdcp服务器管理界面,根据下图进行简单设置。

 

 

简单说明,增加服务器端口,是因为文章开头已经说过,在假设没有DNS的前提下进行操作,没有DNS的域名识别,如何进行虚拟主机识别呢?用端口。我这里分别开通了81,82.Web引擎,默认是Lanmp的就是Linux+apache+Nginx+Mysql+php,我们这个项目需要高并发量,所以设置了Lnmp就是Web引擎为Nginx。设置完成后重启。

设置虚拟主机

 

使用该管理系统新建虚拟主机非常简单,只需要点击新建站点,写一下域名,就可以了,当然,记得将端口改为81.分别在三台服务器中建立虚拟主机,端口号均为81.实际的第一个站点的虚拟主机如下:


  
  
  1. 1-server-192.168.1.171:81  
  2. 2-server-192.168.1.172:81  
  3. 3-server-192.168.1.173:81 

注意问题:系统时间

有时候安装完系统,系统时间会跟实际时间有出入,可能是时区问题,可能是虚拟机问题,等等,无论问题,都要调整时间,下面为Linux调整时间的方法。


  
  
  1. 修改linux的时间可以使用date指令  
  2.  
  3. 在命令行输入:  
  4.  
  5. date  
  6.  显示当前时间 Fri Aug  3 14:15:16 CST 2007 
  7.  
  8. date -s   
  9. 按字符串方式修改时间  
  10. 可以只修改日期,不修改时间,输入: date -s 2007-08-03 
  11. 只修改时间,输入:date -s 14:15:00 
  12. 同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:date -s "2007-08-03 14:15:00" 
  13.  
  14. 修改完后,记得输入:clock -w   
  15. 把系统时间写入CMOS 

负载均衡

对于LN 的安装我就不再说明,直接跳过。(Linux+Nginx)

首先要开通负责负载均衡服务器(LN)的80端口。

1.配置Nginx.conf


  
  
  1. vi /etc/nginx/nginx.conf 

修改成


  
  
  1. user  nginx;  
  2. worker_processes 10;  
  3. #error_log  logs/error.log;  
  4. #error_log  logs/error.log  notice;  
  5. #error_log  logs/error.log  info;  
  6. #pid        logs/nginx.pid;  
  7. worker_rlimit_nofile 51200;  
  8. events  
  9. {  
  10.       use epoll;  
  11.       worker_connections 51200;  
  12. }  
  13. http  
  14. {  
  15.       include       /etc/nginx/mime.types;  
  16.       default_type  application/octet-stream;  
  17.       keepalive_timeout 120;  
  18.       tcp_nodelay on;  
  19.     upstream s01 {  
  20.     server 192.168.1.171:81;  
  21.     server 192.168.1.172:81;  
  22.     server 192.168.1.173:81;  
  23.     }  
  24.     server {  
  25.     listen 80;  
  26.     server_name s01.domain.com;  
  27.     location / {  
  28.                        proxy_pass        http://s01;  
  29.               }  
  30.     }  

2.重启Nginx


  
  
  1. service nginx restart
OK啦

© 著作权归作者所有

共有 人打赏支持
crossmix
粉丝 69
博文 305
码字总数 645711
作品 0
广州
高级程序员
私信 提问
加载中

评论(1)

jnas
jnas
不是一般的普通网站 13
急!急!急!找一个做网站的大牛,价格好商量!

找一个会做类似“天天投”这样网站的大神或团队,前端和后台全包,具体需求细谈。价格好商量。 邮箱:huojiangnan@gmail.com 微信:17746576494 联系电话:17746576494...

也如风
2016/11/09
0
0
【Python Web学习路线】干货整理,不谈虚的,让你短时间高效学好它!

无论是大数据、人工智能还是机器学习,Python都是最热门的首选语言。 学好Python,可以从事Python Web工程师、Python数据分析、人工智能专家等岗位。本期专题,分享的主题是“如何成为一枚优...

Eddie_yang
2018/12/24
0
0
Java程序员从笨鸟到菜鸟之(六十)细谈Hibernate(十一)hibernate复合主键映射

欢迎阅读本专题其他博客: 细谈Hibernate(六)Hibernate继承关系映射 细谈Hibernate(七)Hibernate自身一对多和多对多 细谈Hibernate(八)Hibernate集合Map关系映射 细谈Hibernate(九)h...

长平狐
2012/11/12
201
1
细谈Joomla建站之旅----我的启示录

欢迎来到Joomla建站之旅。 介绍一个自由免费的优秀建站软件Joomla,以及怎样自行管理用Joomla所构建的网站。当然顺带着我们也会在网站的规划和建设上给读者一些非常给力的建议。 为了方便大家...

crossmix
2016/02/12
1K
1
Dreamweaver、VisualStudiowebDev、WebOS让你制作网站越来越简单略谈

Dreamweaver、VisualStudiowebDev、WebOS让你制作网站越来越简单略谈 -------------------------------------------------------- Dreamweaver这个东东不用说太多,因为在asp网页程序设计中,...

frisatfb
2010/04/21
524
0

没有更多内容

加载失败,请刷新页面

加载更多

树形结构的数据库表Schema设计

程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数...

太菜鸟
18分钟前
0
0
Pod在多可用区worker节点上的高可用部署

一、 需求分析 当前kubernetes集群中的worker节点可以支持添加多可用区中的ECS,这种部署方式的目的是可以让一个应用的多个pod(至少两个)能够分布在不同的可用区,起码不能分布在同一个可用...

迷你芊宝宝
27分钟前
0
0
使用maven命令上传jar包到仓库

mvn deploy:deploy-file -DgroupId=com.jz.tss.service -DartifactId=tss-service -Dversion=1.9.02-SNAPSHOT -Dfile=E:/Workspace/tss-service/build/oracle/TSS-Service/WEB-INF/lib/TSS-S......

GodIsCj
28分钟前
1
0
mysql 向下无限递归(不使用函数,单纯sql)

表结构和数据 CREATE TABLE table1(id int, name varchar(10), parent_id int); INSERT table1 VALUES (1, 'Home', 0), (2, 'About', 1), (3, 'Contact', 1), (4, 'Legal', 2), ......

一雨成东
28分钟前
0
0
面试官问:ZooKeeper 一致性协议 ZAB 原理

一致性协议有很多种,比如 Paxos,Raft,2PC,3PC等等,今天我们讲一种协议,ZAB 协议,该协议应该是所有一致性协议中生产环境中应用最多的了。为什么呢?因为他是为 Zookeeper 设计的分布式...

Java爬坑之路
31分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部