0%

web服务器与应用服务器

web服务器与应用服务器

Web服务器

是一个处理web请求的计算机系统,常见作用是托管web网站,主要功能是存储、处理、传送web页面到客户端。客户端与服务端之间的通信协议为HTTP,传送的页面多数情况下是HTML,同时包含图片、CSS以及JavaScript脚本

如:Apache HTTP Server、Nginx、Lighttpd、IIS等

场景:

  • 静态资源优化
  • 多应用、多虚拟机整合
  • 负载均衡
  • 复合场景

应用服务器

用于提供创建应用程序服务端实现和应用程序功能的通用方法,致力于程序或脚本的处理效率以支撑其应用

大多数应用服务器框架包含了一个综合的服务层模型。应用服务器对于软件开发者来说是一套可访问的组件,可通过平台定义的API访问。

如:Tomcat、JBOSS、Weblogic、WebSphere

web服务器是应用服务器的子集。,但是web服务器更侧重于对HTTP请求的处理,而应用服务器侧重于构建业务系统的组件支撑

各自的优势

  • Web服务器侧重于系统的吞吐量、并发量的支持,性能高于应用服务器
  • Web服务器大多提供了反向代理,用于负载均衡,应用服务器如果使用负载均衡的话一般采用LVS等方案。而应用服务器可以很好地支持集群架构,如会话集群、集群部署
  • 多数web服务器提供了静态文件缓存服务,对于静态文件的请求性能要好于应用服务器
  • web服务器可以通过相关模块支持IMAP/POP3/SMTP

Nginx

集成多个应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#配置服务器1
upstream sample1 {
server 127.0.0.1:8080
}
#配置服务器2
upstream sample2 {
server 127.0.0.1:8081
}

server {
# 映射服务器1
location /simple1/{
proxy_pass http://sample1;
}
# 映射服务器2
location /simple2/{
proxy_pass http://sample2;
}
}

负载均衡

1
2
3
4
5
6
7
8
9
10
11
12
13
#配置服务器集群组
upstream sample1{
#实例1 设置权重 通信失败的最大次数 失败次数达到max_fails时,多久内该服务器无效
server 127.0.0.1:8080 weight=1 max_fails=3 fail_timeout=30s
#实例2
server 127.0.0.1:8081 weight=1 max_fails=3 fail_timeout=30s
}
server {
# 映射服务器集群
location /sample1/ {
proxy_pass http://simple1;
}
}