Nginx基础入门

Nginx (“engine x”)是一个高性能的 HTTP 和反向代理服务器 特点是占有内存少,并发能力强。

Nginx可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 pe rl 、 php等。但是不支持 java 。 Java 程序只能通过与 tomcat 配合完成。 Nginx 专为性能优化而开发,性能是其最重要的考量 实现上非常注重效率 ,能经受高负载的考验 有报告表明能支持高达 50,000 个并发连接数。

【1】正向代理与反向代理

① 正向代理

如果把局域网外的Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet ,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

如下图所示:
在这里插入图片描述

② 反向代理

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。

在这里插入图片描述

【2】动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。

在这里插入图片描述

Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx 处理静态页面,Tomcat处理动态页面。

动静分离从目前实现角度来讲大致分为两种: 一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案; 另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。

通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之间的请求和流量。

具体 Expires 定义:是给一个资源设定一个过期时间,也就是说无需去 服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用 Expires 来缓存)。

如设置 3d ,表示在这 3 天之内访问这个 URL ,发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码 304。如果有修改,则直接从服务器重新下载,返回状态码 200 。


【3】Nginx的安装

源码方式安装nginx及其依赖并设置服务开机启动
CentOS 7下使用yum安装Nginx

【4】负载均衡

随着互联网信息的爆炸性增长,负载均衡(load balance )已经不再是一个很陌生的话题。顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品, 很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎,nginx 就是其中的一个,在 linux 下有 Nginx 、 LVS 、 Haproxy 等等服务可以提供负载均衡服务。

Nginx 提供了四种分配方式 策略

①轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。也就是说 ,如果nginx后面转发到两个Tomcat,其中一个Tomcat由于某种原因挂掉了。不用担心再有请求到这个Tomcat上面从而引发错误 !。

② weight

weight代表权 重默认为 1, 权重越高被分配的客户端越多。指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如:

upstream server_pool{ 
	server 192.168.5.21 weight=10;
	server 192.168.5.22 weight=10; 
}

③ ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 例如:

upstream server_pool{ 
	ip_hash; 
	server 192.168.5.21:80;
	server 192.168.5.22:80; 
}

④ fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。实例如下:

upstream server_pool{ 
	server 192.168.5.21:80; 
	server 192.168.5.22:80; 
	fair; 
}

应用实例参考博文:Nginx+Tomcat实现反向代理与负载均衡

©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值