企业为什么搭建群集环境和web网站
兄弟 您好上海献峰Web服务器集群搭建如下
一 需求分析:
1整体需求:搭建一个高可用的网站服务器集群,能承受高并发请求,能抵御一般的网络攻击,任何一台服务器的退服不影响整个集群的运作,并且能对各服务器的运行情况作出实时监控。
2详细需求分析:
根据需求,计划根据以下拓扑搭建运行环境:
二 详细功能描述:
1前端服务器采用nginx实现反向代理和负载均衡,用keepalive实现HA。此部分由centos1和centos4实现,centos1作为主服务器,centos4作为热备服务器。Nginx会根据不同的请求ip机会均等地把请求发送到后端两台服务器,并且以ip hash的方式保持各个ip的会话。
2后端服务器构建在centos2与centos3上,采用apache作为web发布软件,mysql作为数据库,测试网页用Django来实现。两台服务器的数据库能够自动同步。
3作为热备服务器,centos4在centos1没有故障时并没有业务流量,处于相对空闲的状态,因此在centos4上配置nfs使它成为文件共享服务器,网站文件放在这台服务器上。
4centos5作为监控服务器,运行nagios监控各服务器状态。出现告警时通过告警通知管理员。另外centos5还作为saltstack的服务器,其他主机的软件安装、文件传输、命令运行等操作均通过saltstack批量实现。
三 总体部署描述:
1各个服务器均安装centos64 64位版本,采用cobbler实现批量自动安装。
2各个软件均安装最新的稳定版,centos自带的软件也要进行升级,例如python,Centos自带的版本比较久,会影响Django的运行。
四 详细部署描述:
1nginx设置
Nginx在这里的作用主要是反向代理、作为用户以及服务器之间的缓存、以及以负载均衡的方式把请求发送到后端两台服务器。
采用编译安装的方式安装nginx,具体过程就不在此记述了,不过为了更好地抵挡入侵,建议编译前修改一下安装文件,使入侵者难以查出nginx的版本号,修改安装文件中的nginxh,把相关字段修改如下:
NGINX_VERSION "10" NGINX_VER "webserver" NGINX_VERSION
Nginx的配置文件如下:
212800
default_type application/octet- zone=20;
send_timeout 20;
client_body_buffer_size 1k;
client_header_buffer_size 1k;
large_client_header_buffers 2 1k;
server_tokens off;
client_body_timeout 20;
client_header_timeout 20;
ip_hash;
server 10003;
server 1000280///100;
limit_rate 500k; 500 502 503 504 /= /
因为后端测试网页是用Django写的,因此nginx就不用处理php等动态网页的请求了。
设置完毕后,把nginx设置为开机启动,可以用如下方式:
echo “/usr/local/nginx/sbin/nginx” >>/etc/rclocal
2Keeplive设置
Keeplive的作用是在两台服务器(centos1、centos4)之间,以VRRP协议实现HA。通过虚拟出一个Virtul IP(本例子中是19216800000)来对外发布业务。两台服务器中的任一台退服了,keeplive会自动把业务转到另一台上。在这里centos1是主服务器,centos4是备用服务器。平时的数据流量只会通过centos1,只有centos1退服了,数据流量才会割接到centos4上。
centos1上的keepalive配置:
! Configuration File @testcom @12700130
virtual_router_id 5119216848139
priority 100
advert_int 1 111119216848138
对于从服务器centos4,只需要把以上配置文件的部分内容修改即可:
1921684814090
同样,配置好配置文件后,把keepalive添加到开机启动中。
对于keepalive,由于是使用VRRP协议来检查对端是否在线的,只要对端能ping通,那么keeplive就会认为对端在线。但也有一种情况是对端服务器没有宕机,但nginx出错关闭了,这种情况下keepalive仍然会判断对端在线,不会把业务割接到备用服务器。因此我们需要在服务器上运行一个脚本,监控nginx进程的状态。假如nginx进程关闭了,先尝试重启nginx,无法重启时就关闭keepalive的进程,使业务割接到备用端。
如果网站规模不大,且对服务器不了解,建议买虚拟主机就可以。买到后:
1、把域名跟主机绑定;
2、获取到ftp帐号信息,用ftp软件把程序上传;
3、把数据库导入,修改程序配置文件,连接上数据库,就OK了。
如果一定要用云服务器,买好服务器之后需要配置web服务环境:
1、安装apache/nginx;
2、安装php
3、安装mysql
4、安装ftp
5、修改域名解析,配置apache绑定域名,上传程序,导入数据库数据,修改数据库配置文件,最后大功告成。
web前端分为网页设计师、网页美工、web前端开发工程师首先网页设计师是对网页的架构、色彩以及网站的整体页面代码负责网页美工只针对UI这块儿的东西,比如网站是否做的漂亮web前端开发工程师是负责交互设计的,需要和程序猿进行交互设计的配合
web前端需要掌握的有脚本技术javascript DIVCSS现下最流行的页面搭建技术,ajax和jquery以及简单的后端程序等
后端的话可供开发的语言有 asp、php、jsp、
NET 这些后端开发语言的话搭建环境都不一样,具体如果自己想学的话看是想从事前端部分还是后端程序部分
后端开发如果有一定的条件的话可以转为软件开发
不过要有一定的语言基础,类似java语言
C#等
关键是看自己的兴趣爱好
这个到后期不会区分这么细,做前端到后期也会懂一些后端的技术,反之,后端也是
在实际的开发过程中,当前这样定位前端、后端开发人员
1)前端开发人员:精通JS,能熟练应用JQuery,懂CSS,能熟练运用这些知识,进行交互效果的开发
2)后端开发人员:会写Java代码,会写SQL语句,能做简单的数据库设计,会Spring和iBatis,懂一些设计模式等
现在来看,对前后端的要求还是蛮低的,尤其是后端,新员工经过培训之后都是可以参与到后端开发的,没有太高的技术门槛,唯一需要做的就是先变成熟练工种,这个阶段没有涉及到设计模式、架构、效率等一些列问题
还是先google一下,看看网上对Web前端开发、Web后端开发分别是什么Web前端: 顾名思义是来做Web的前端的
这里所说的前端泛指Web前端,也就是在Web应用中用户可以看得见碰得着的东西
包括Web页面的结构、Web的外观视觉表现以及Web层面的交互实现
Web后端:后端更多的是与数据库进行交互以处理相应的业务逻辑
需要考虑的是如何实现功能、数据的存取、平台的稳定性与性能等
再来看看大公司对前后端人员招聘的要求,通过这个角度看看前端、后端的技术要求: Web前端:1)精通HTML,能够书写语义合理,结构清晰,易维护的HTML结构
2)精通CSS,能够还原视觉设计,并兼容业界承认的主流浏览器
3)熟悉JavaScript,了解ECMAScript基础内容,掌握1~2种js框架,如JQuery4)对常见的浏览器兼容问题有清晰的理解,并有可靠的解决方案
5)对性能有一定的要求,了解yahoo的性能优化建议,并可以在项目中有效实施
6)
Web后端:1)精通jsp,servlet,java bean,JMS,EJB,Jdbc,Flex开发,或者对相关的工具、类库以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,对Web开发的模式有较深的理解2)练使用oracle、sqlserver、mysql等常用的数据库系统,对数据库有较强的设计能力3)熟悉maven项目配置管理工具,熟悉tomcat、jboss等应用服务器,同时对在高并发处理情况下的负载调优有相关经验者优先考虑4)精通面向对象分析和设计技术,包括设计模式、UML建模等5)熟悉网络编程,具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力6)
从几个公司的招聘要求可以看到,做Web开发,对前端和后端的要求是各自所不同的
而目前的实际情况,也和这个差不多,但是,自己无论在知识的掌握程度上,还是知识掌握的宽度上,都是不够的
首先,自己在前端缺乏积累,没有沉淀,专业的前端技术的积累是从去年才开始的,同时,在前端也缺乏支撑与高手,所以,走起来比较困难
同时,前端人员培养的较少,一个原因是对前端了解太少,另外一个原因就是对前端与后端的工作比例估计不足
所幸,在这一年也在前端有了很快的进步,培养了几个优秀的开发人员,有意识的解决了前端的用户体验,这都是可喜的
今年,需要更进一步,专业化
其次,在后端发展的不够宽,后端的知识体系已经比较完善,但是,很多应用点都没有涉及到
同时,对现有技术框架的理解都不够深入,太浮躁
目前的设计团队在解决互联网高并发、大数据量的存取上经验与能力都还不足,需要正视这些问题
后端技术的发展需要更加的精进,以解决实际存在的问题为主
最后,在前端、后端都缺乏熟练工,这会影响到开发的速度,同时,也不利于后期技术的研究
0条评论