学习来源:b站狂神
https://www.bilibili.com/video/BV1F5411J7vK
1.问题
并发量小,用户使用的少,一个jar包启动应用就够了,内部tomcat返回内容给用户
并发量慢慢增大了,这时候一台服务器满足不了我们的需求了
横向扩展,增加服务器,用户访问后再次访问由于session不共享,用户还要再次登录,就很不合理,因此可以通过代理服务器来帮我们转发和处理请求
架构: 没有什么是加一层解决不理的问题!
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
优点:占有内存少,并发能力强。
- 正向代理:代理客户端
- 反向代理:代理服务端
Nginx负载均衡策略:
-
内置策略
-
轮询
-
加权轮询
-
iphash(ip哈希):对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理。可以解决session不共享问题,但是不推荐,一旦这台服务器崩了数据就消失。(推荐使用redis)
-
-
扩展策略:只有你想不到的没有他做不到的
动静分离:在我们的软件开发中有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件。让动态网站里的动态网页根据一定规则进行动静资源拆分,我们就可以根据静态资源的特点将其做缓存操作。
提高资源响应的速度:
nginx是跨平台的。
官网下载:http://nginx.org/en/download.html
解压放到没有中文的文件夹里,cmd启动:
3.2linux安装
whereis nginx #检查是否安装Nginx [root@haodoop100 ~]# mkdir /usr/java [root@haodoop100 ~]# cd /usr/java [root@haodoop100 java]# ls nginx-1.20.2.tar.gz [root@haodoop100 java]# tar -zxvf nginx-1.20.2.tar.gz yum -y install pcre-devel openssl openssl-devel #自动配置的时候报错,需要安装pcre ./configure #自动配置 make #执行make命令 make install #执行make install whereis nginx #查看安装目录 [root@haodoop100 nginx-1.20.2]# cd /usr/local/nginx [root@haodoop100 nginx]# ls conf html logs sbin [root@haodoop100 nginx]# cd sbin/ [root@haodoop100 sbin]# ./nginx [root@haodoop100 sbin]# firewall-cmd --permanent --add-port=80/tcp success
nginx常用命令:
./nginx 启动 ./nginx -s stop 停止 ./nginx -s quit 安全退出 ./nginx -s reload 重新加载配置文件(用得很多,但凡改了配置文件就要执行这个命令) ps aux|grep nginx 查看nginx进程
修改nginx.conf
upstream lb{
server 127.0.0.1:8080 weight=3;
server 127.0.0.1:8081 weight=1;
}
location / {
proxy_pass http://lb;
}



