前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx:高性能服务器

Nginx:高性能服务器

作者头像
冷环渊
发布2021-10-19 15:54:27
1.5K0
发布2021-10-19 15:54:27
举报

Nginx

nginx的应用场景

简介

Nginx (“engine x”) 是一个高性能的 HTTP和反向代理服务器,特点是占有内存少,并发能 力强,事实上 nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等

作为 web 服务器的功能

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

代理

正向代理 客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

在这里插入图片描述
在这里插入图片描述

反向代理 由反向代理服务器去选择目标服务器获取数据后,在返 回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器 地址,隐藏了真实服务器 IP地址。

在这里插入图片描述
在这里插入图片描述

负载均衡 我们单台机器无法支持运转的时候,可以横向扩充多台机器,将压力分散出去

在这里插入图片描述
在这里插入图片描述
动静分离

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

在这里插入图片描述
在这里插入图片描述

案例

反向代理案例一(无条件代理)

实现效果:使用 nginx反向代理,访问 www.123.com 直接跳转到 127.0.0.1:8080 我们需要修改本地的host文件,将 www.123.com 映射到 127.0.0.1

在这里插入图片描述
在这里插入图片描述

我们便可以通过 www.123.com:8080 访问到第一步出现的 Tomcat初始界面。

之后去编写nginx的配置文件

在这里插入图片描述
在这里插入图片描述

如上配置,我们监听 80端口,访问域名为 www.123.com,不加端口号时默认为 80端口,故 访问该域名时会跳转到 127.0.0.1:8080路径上。在浏览器端输入 www.123.com 结果如下:

在这里插入图片描述
在这里插入图片描述

反向代理案例二(有匹配规则的代理)

实现效果:使用 nginx反向代理,根据访问的路径跳转到不同端口的服务中 nginx监听端口为 9001, 访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8081 访问 http://127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8082

我们需要有两个tomcat启动

在这里插入图片描述
在这里插入图片描述

一个启动80一个启动8081 之后配置nginx

在这里插入图片描述
在这里插入图片描述
location指令说明
在这里插入图片描述
在这里插入图片描述

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。 2、~:用于表示 uri 包含正则表达式,并且区分大小写。 3、~ **:用于表示 uri 包含正则表达式,并且不区分大小写。 4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

负载均衡

实现了访问一个路径,可以以轮询(一边一次的)方式去8080和8081两个端口访问 这里我们在两个tomcat里都准备好对应的文件

在这里插入图片描述
在这里插入图片描述

之后配置nginx

在这里插入图片描述
在这里插入图片描述

随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题, 顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应 足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品, 很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎, nginx就是其中的一个,在 linux下有 Nginx、LVS、Haproxy等等服务可以提供负载均衡服 务,而且 Nginx提供了几种分配方式(策略): 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 dow n 掉,能自动剔除。 2、weight weight 代表权,重默认为 1,权重越高被分配的客户端越多 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如:

代码语言:javascript
复制
upstream server_pool{
server 192.168.5.21 weight=10;
server 192.168.5.22 weight=10;
}

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

代码语言:javascript
复制
upstream server_pool{
ip_hash;
server 192.168.5.21:80;
server 192.168.5.22:80;
}

4、fa ir(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。

代码语言:javascript
复制
upstream server_pool{
server 192.168.5.21:80;
server 192.168.5.22:80;
fair;
}

动静分离

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

我们现在我们的服务器上设置一个存放静态资源的文件

在这里插入图片描述
在这里插入图片描述

之后去写nginx的配置文件

在这里插入图片描述
在这里插入图片描述

重点是添加 location, 最后检查 Nginx 配置是否正确即可,然后测试动静分离是否成功,之需要删除后端 tomcat 服务器上的某个静态文件,查看是否能访问,如果可以访问说明静态资源 nginx 直接返回 了,不走后端 tomcat 服务器 效果图

在这里插入图片描述
在这里插入图片描述

到这里nginx常用的一些使用案例就总结完成了,

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Nginx
    • nginx的应用场景
      • 简介
      • 作为 web 服务器的功能
    • 案例
      • 反向代理案例一(无条件代理)
      • 反向代理案例二(有匹配规则的代理)
      • 负载均衡
      • 动静分离
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档