IDea和nginx解决高并发

1 order-user系统高并发结构
1.1高并发?
互联网项目,一般必须支持高并发,我们开发的order-user系统支持多少并发(单位时间并发) 取决于系统运行使用的web容器(tomcat)取决于系统服务器的硬件。Tomcat并发 一秒钟200-500左右,所以不支持高并发!
所以单机运行order-user系统 不能支持高并发,
1.2高并发结构(集群)
1.3 单机并发200-500 ,可以实现集群搭建,就能线性并发增长。我们可以利用idea多实例运行,让order-user系统多启动几个。多个tomcat容器同时进行运行。
可以通过idea提供的一个项目多实例的运行 集群:如下配置
IDea和nginx解决高并发_第1张图片
IDea和nginx解决高并发_第2张图片
选择templates
IDea和nginx解决高并发_第3张图片
IDea和nginx解决高并发_第4张图片

全部添加
IDea和nginx解决高并发_第5张图片
效果
IDea和nginx解决高并发_第6张图片

IDea和nginx解决高并发_第7张图片
这样 端口号 8091 8092 8093 8094 都可以访问我们创建的网站(实际生产中往往通过云集群实现)。但是实际网络生产过程中,我们访问一个网站 通常是一个域名访问,但是这样端口号有很多个 ,那么怎样实现一个域名 访问这多个端口号呢。

2 Nginx
2.1 介绍
Nginx 是高性能http道理服务器技术 可以实现http请求处理

2.2作用
负载均衡:就是解决之前提出如何让用户通过同一个域名和端口号访问到不同的服务器集群的节点

动静分离:所有静态文件,.html.js.img交给nignx管理,访问静态文件是非常迅速的,动态资源(代码功能)交给后端服务器处理

2.3引入nginx的负载均衡结构
IDea和nginx解决高并发_第8张图片
客户端通过网络,使用域名+80默认端口访问到nginx的服务器,通过nginx的计算可以负载均衡的访问后端服务器集群

2.4 安装nginx
链接:https://pan.baidu.com/s/1xzZ_KshxlMY921fvaZfpoQ
提取码:x01y
把已经下载的nginx解压到一个没有中文,没有空格的路径中
解压的内容
conf:核心配置文件nginx.conf所在的目录,和进程,线程占用配置的配置文件所在目录

logs: access.log 通过nginx访问的记录,error.log运行启动时的错误日志
easymall:order-user的静态文件
test-em:easymall系统静态文件
nginx_start.bat: 启动nginx的bat文件
nginx_stop.bat: 停止nginx的bat文件
检查nginx是否正常运行
默认配置中,nginx需要启动2个进程,一个是master管理员,一个是worker工作进程,可以观察任务管理器

IDea和nginx解决高并发_第9张图片
3 nginx入门案例

需求 :使用nginx访问www.ou.com 访问到 1 中我们配置得8091 的端口 http://localhost:8091/index.html

3.1 保证这个域名能访问到nginx启动服务器
需要在window中 host做ip地址映射(实际是去买个域名 目前就先测试)
IDea和nginx解决高并发_第10张图片

3.2配置nginx的虚拟服务器
nginx作为代理,可以在核心配置文件中配置多个虚拟服务器(http服务器) 接收到达NGINX服务器的http请求,根据配置逻辑实现监听判断,满足条件的请求将会有这个虚拟服务器处理—server.
打开编辑–nginx根目录–>conf文件夹–>nginx.conf

IDea和nginx解决高并发_第11张图片
IDea和nginx解决高并发_第12张图片
nginx转发过程流程总结
起始访问地址:http://www.ou.com/
|www.ou.com找ip映射—>127.0.0.1,请求发送到了127.0.0.1:80
|nginx的多个server都在同时监听本机的80端口
|其中有一个server server_name www.ou.com 满足本次请求,交给这个server处理
|匹配location 请求地址 http://www.ou.com/ uri=/ 匹配location
|进入到location 找到proxy_pass http://127.0.0.1:8091
最终访问:http://127.0.0.1:8091/

3.3 location的匹配规则和优先级
在一个server的内容 ,可以同时存在多个location,根据请求中携带的uri地址结构不同值不同,分到不同location来出不同的请求

最终启动
IDea和nginx解决高并发_第13张图片
成功

你可能感兴趣的:(java,互联网框架)