一、HTTP服务
1.对HTTP的了解
Apcahe是一个模块化服务,支持的模块比较多,属于同步阻塞型,也就在一个时间点内一个线程只处理一个进程。
对于高并发的场景来说,处理的速度比较慢。但是其运行稳定。支持正则表达式做动静分离。
二、Nginx
nginx
Nginx是一个高性能web服务器以及反向代理服务器。同时也是IMAP/POP3/SMTP 邮件代理服务器。
nginx实现高并发
由于nginx采用epoll模型,该模型采用异步非阻塞的事件处理方式,可以让nginx进程同时监控多个事件。
一个master进程有多个worker进程,一个worker进程可以处理多个请求来达到一个高并发的状态
master:读取及评估配置和维持
worker:处理请求
nginx的调度算法
1.round-robin:轮询
2.weight:权重
3.ip_hash
4.url_hash…
nginx的相关模块
1.访问控制模块:ngx_http_access_module
2.用户认证模块:ngx_http_auth_basic_module
3.fastcgi模块:ngx_http_fastcgi_module
4.压缩模块:ngx_http_gzip_module
5.限制并发模块:ngx_http_limit_conn_module
6.日志模块:ngx_http_log_module
7.代理模块:ngx_http_proxy_module
8.地址重写模块:ngx_http_rewrite_module
9.加密模块:ngx_http_ssl_module
10.状态模块:ngx_http_stub_status_module
11.调度器模块:ngx_http_upstream_module
三、Tomcat
解释
应用severlet服务器。apache的扩展。主要是负责动态java的web请求处理。
相关优化:内存优化、线程优化、session的过期时间、禁用dns查询。
部署方式
1.conf中,一个节点就是一个页面
2.web项目文件拷贝到tomcat的webapps目录中
。。。
运行模式
BIO:同步阻塞
NIO:同步非阻塞
APR:异步非阻塞
总结
apache与tomcat:
apache侧重于httpserver,tomcat侧重于servlet引擎
nginx与apacche
1.nginx--轻量级,占用更少的内存及资源
--抗并发,nginx处理是异步非阻塞,apache为阻塞型。
--高度模块化设计,编写模块相对简单
--提供负载均衡
--社区活跃,各种高性能模块出品迅速
2.apache--rewrite比nginx强大
--支持动态页面
--性能稳定,bug较少
3. Nginx 配置简洁, Apache 复杂 ;
Nginx 静态处理性能比 Apache 高 3倍以上 ;
Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用;
Apache 的组件比 Nginx 多 ;
apache是同步多进程模型,一个连接对应一个进程; nginx是异步的,多个连接(万级别)可以对应一个进程;
nginx处理静态文件好,耗费内存少;
动态请求由apache去做,nginx只适合静态和反向;
Nginx适合做前端服务器,负载性能很好;
Nginx本身就是一个反向代理服务器 ,且支持负载均衡