WEB服务器搭建建议使用Linux平台
一般在网站建设时都需要考虑网站的开发平台,后期的运营、维护成本以及网站后期的并发和拓展。
-
在Java或者是php开发的平台一般都是使用LAMP、LNMP环境来整合资源。
-
选择这些免费的并稳定性相对成熟的建构也是能满足当前和日后的需求。
-
一条命令就能搞定 yum -y install httpd mysql mysql-server mysql-devel php php-mysql
初期的环境相对简单一般是一个简单的LAMP基础架构绝对能满足企业的日常需求。
中后期规模变大这个时候会有很多的瓶颈
1,数据库是最大的瓶颈,这个时候会变成主从架构模式,主库负责写入,从库负责读取任务,实现读写分离的架构思想。
2,如果是有像抢购类似的业务,这个时候的瓶颈出现网络层面和并发请求的任务,这个时候就需要配合CND就近推送,并发请求需要MQ这样的消息队列缓存机制来减轻压力。
3,到了后期压力还是很大,这时候要在数据库前面加缓存服务器redis,尽量不要压力到数据库这边来,保证在前面就消耗流量。
web服务器是什么?
Apache,nginx如何理解?我以为服务器是为一台电脑或者多台电脑服务的机器。
Web服务器有硬件服务器和软件服务器,现在硬件服务器多以云的方式为用户提供服务。
Apache、nginx属于软件服务器,软件服务器是架设在服务端为Web应用提供系统级支撑服务,除了题目中提到的两个服务器,还有微软的IIS服务器也有比较多的应用,可以说是目前应用最为广泛的三大服务器。
以下描述的是Web Server的用户请求处理过程(以CGI为例):
通常Web Server还要与数据库服务器联合使用。
下面通过Java Web服务器来解释Web Server的作用,首先我们看一下Web Server在内部提供的服务:
Web Server包含了httpd和Web Container,其中httpd服务器是apache为静态页面提供的响应服务器,而Web Container则提供了动态内容的处理,为了解释Web Container的概念,我们看一下官方给出的定义:
官方定义只有两点:
- 协调servlet与httpd进程之间的交互。
- 一个实现了servlet API的Java虚拟机。
第一点比较好理解,如果是静态页面则交由httpd负责处理,如果是动态请求则传递到Web container中进行处理。
第二点是理解Web Container的重点,实现了servlet API的Java虚拟机则涵盖了很多内容。简单的概括一下,可以包含如下内容:
1.web组件的配置、部署。
2.web组件的生命周期管理、对象的创建、运行、销毁。
3.服务组件之间的信息共享。
4.会话管理。
5.安全管理、异常处理等。
我们通过一个请求处理的时序图看一下Web Container的作用:
可以说Web Container就是Web组件的运行支撑环境,Web组件的一切任务都在Web Container中完成,同时Web Container提供了系统级的支撑,用户的Web组件(比如servlet)只需要专注于业务逻辑的实现就可以了,为开发人员提供了很大的便利。
由于Linux在安全性上要明显好于Windows和Unix,通常Web Server部署在Linux服务器上比较常见。同时Linux服务器的稳定性表现也比较突出,所以一般大型Web服务都选择部署在Linux系统上。
关注我,了解更多关于Web开发的内容,我是的签约作者,致力于为的网友提供专业的科技类问题解答。