栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux(CentOS7)安装配置部署Nginx<二、基础配置>

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux(CentOS7)安装配置部署Nginx<二、基础配置>

书接上回,上回说了如何通过yum的方式安装nginxlinux(CentOS7)安装配置部署Nginx<一、基础安装>
这次来学习一下,nginx安装之后,应该怎么配置,比如说反向代理?负载均衡?这些听起来好像很牛逼的东西。

为什么要使用Nginx,Tomcat不好麽?

举个例子,当你在地址栏访问https://baidu.com的时候,过程是这样的:
首先,浏览器向服务器提交第一次请求,然后服务器返回网页,浏览器解析网页,解析过程中,发现js链接,img链接等等,然后服务器再次向这些静态资源发送请求。所以在你感觉好像就发送了一次请求,可它其实是长这样:

你会发现你回车的一瞬间,其实发送了很多个请求。
试想一下,如果每个请求都是通过Tomcat获取,那么,它的压力将是巨大的。
从这些请求中可以发现,大部分请求都是静态资源请求,业务逻辑的请求其实只占小部分,所以,我们完全可以,将这两种请求分开,静态资源用Nginx来处理,业务请求用tomcat来处理,从而减轻tomcat的压力,提高整体并发量,也就是所谓的前后端分离。

什么叫反向代理?

先说正向代理,假设你有a和b两台服务器,a连外网,b无外网,但是a和b又相互连接,因此b通过a来上外网,这就是所谓正向代理。
再说反向代理,还是上面的a和b两台服务器,此时a接受外网的请求,然后将请求转发给b,那么对于外网请求来说,他会觉得是a处理了他的请求,其实不然,他的请求是b处理的
试想一下,如果有万级的请求访问a,那么单靠a是肯定撑不住,所以我们可以用反向代理,将请求转发给很多个b这种专门处理请求的服务器,那么不管你有多少请求,我只需要不停的添加服务器b的数量,便能解决问题。

什么是负载均衡?

上面反向代理的概念已经清晰,但其实这之中还存在问题
假如说我现在有三台b服务器,a接受到万级请求之后,如何将这么多的请求转发给多个b?
我们可以这样设置,将a的请求三等分,然后均匀的转发到b服务器上去,但是实际应用中,请求的复杂度通常与业务是分不开的,比方说r1请求是计算10的阶乘,r2请求是计算一亿的阶乘,那么很明显,当这两种请求分别发到服务器b1、b2的话,他们干的活其实是不一样的,那么此时,恰好所有的比较复杂的请求全部转发到b1上,比较轻松的请求全部转发到b2上,这就是导致了服务器闲的闲死,累的累死。这该怎么办?
如果b1因为某种原因宕机了,那又该怎么办?
因此,如何将请求分发?如何解决部分服务器宕机的问题?这些问题的终极解决方案就叫负载均衡。
负载均衡是一种解决问题的方案,并不是某个软件。

如何使用Nginx来实现反向代理?

首先,必须关掉selinux(下面是临时关闭)

setenforce 0

然后编辑配置文件vi /etc/nginx/conf.d/default.conf

location / 表示处理所有请求
proxy_pass http://127.0.0.1:8001; 表示把请求都交给http://127.0.0.1:8001来处理
接着重启Nginx

systemctl restart nginx

然后访问地址就会观察到已经反向代理到tomcat了
既然直接通过http://127.0.0.1:8001 可以访问,那么干嘛要通过http://127.0.0.1 去反向代理到tomcat呢? 为什么不直接使用tomcat呢?

因为nginx在处理静态文件的吞吐量上面比tomcat好很多,通常他们俩配合,不会把所有的请求都如本例所示的交给tomcat, 而是把静态请求交给nginx,动态请求,如jsp, servlet,ssm, struts等请求交给tomcat. 从而达到动静分离的效果。

如何做到动静分离?

修改配置文件vi /etc/nginx/conf.d/default.conf

这表示所有的css js png访问都由nginx来做,文件存放的地址是/home/static/
这里要注意,填写本地地址的时候,要用正斜杠 / 不要用反斜杠
写完之后重启nginx

systemctl restart nginx
如何使用Nginx来实现负载均衡?

编辑配置文件vi /etc/nginx/nginx.conf

weight表示权重,值越大,被分配到的几率越大。 最大多少呢?我也不知道。。。反正10以内都可以用吧,我想的话~
然后修改default.confvi /etc/nginx/conf.d/default.conf

写完之后重启nginx

systemctl restart nginx

今天先到这里,明天晚上接着肝……

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/870704.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号