Nginx知识点总结

问题总结

一、什么是Nginx

是一个轻量级的高性能的反向代理,web服务器,实现非常高效的反向代理,负载均衡,可以处理高并发的连接数,支持5万并发

二、为什么要使用
  • 跨平台性,配置简单,

  • 反向代理,高并发连接,处理大量连接数据

  • 内存消耗小处理静态资源,内存消耗小

  • 而且Nginx内置的健康检查功能,如果有一台服务器宕机,会做一个健康检查

  • 节省宽带,支持GZIP压缩,可以添加浏览器到本地缓存稳定性高

  • 宕机的概率是非常小的接收用户请求是异步的

三、为何Nginx性能这么高
  1. 事件处理机制 是异步非阻塞事件处理机制,运用了epoll模型,提供了一个队列,排队解决

  2. Nginx接收一个请求后,首先由listen和serve_name指令匹配server模块,再匹配serve模块里的location 进行内部地址映射

server{
listen 80:  提供服务的端口 默认是80
 server_name localhost: 提供服务的域名主机名
localtion /{
  root html:  站点的根目录,相当于Nginx的安装目录
 index index.html index.html   默认的首页文件 多个用空格分开
}}
四、正向代理,反向代理
  • 正向代理: 发送请求直接到到目的地
  • 反向代理: 请求统一由Nginx接收。Nginx反向代理服务器接收到信息之后,按照一定的规则发送给后端的业务进行集中处理

使用反向代理服务器的优点:

反向代理服务器可以隐藏原服务器的存在和特征,它充当互联网云和web服务器之间的中间层, 安全系数大大提升,尤其是使用web托管服务

五、Nginx优点
  • 占用内存小,可以实现高并发连接,处理响应快 ,可以实现http服务
  • 虚拟主机,方向代理,负载均衡
  • Nginx配置简单
  • 可以不暴露任何正式的服务器ip地址
六、Nginx缺点
  • 动态处理性能差,Nginx后处理静态文件好,耗费内存小,但是处理动态页面则很鸡肋,
  • 现在一般前端用 Nginx作为反向代理抗住压力
七、动静分离技术的必要性

Nginx是当下最热的web容器,网站优化的重点在于静态化网站,网站今天化的关键点则是动静分离,动静分离是然后动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分之后,我们则根据静态资源的特点将其做缓存操作。

静态资源走静态,动态资源走动态

Nginx 的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术

对于静态资源比如图片,js css等文件 我们则在反向代理服务器Nginx中进行缓存,这样浏览器 在请求一个静态资源的时候,代理服务器Nginx就可以直接进行处理,无需将请求转发给后端服务器Tomcat,若用户请求的动态文件,如果servlet .jsp则转发给Tomcat服务器进行处理,从而实现动静分离,这也是反向代理服务器的一个重要的作用

八、Nginx实现动静分离
  1. 先指定存储的路径 /usr/static/stroage

  2. 配置Nginx.conf

location /image/[
   root /usr/static/storage/ ;
   autoindex on;
}
启动 Nginx
./nginx 

重启

nginx -s reload
九、Nginx负载均衡策略

目的:为了避免服务器奔溃,通过负载均衡的方式来进行分担服务器的压力,于是乎将多个服务器组成一个集群,当用户进行访问的时候,先访问到一个转发的服务器,再由转发服务器转发到分发到不同的服务器进行释压,均摊压力值

Nginx 轮询(默认)

每个请求按照时间顺序逐一分配到不同的后端服务器,如果后端某个服务器宕机,则自动剔除

upstream backserver{
   server 192.168.56.1;
   server 192.168.56.3;
}
权重
weight的值越大越容易被分配到,这种场景主要适用于后端每台服务器性能不均衡的情况下,设置不同的权值,达到合理有效的利用主机资源
upstream backserver{
   server 192.168.56.1  weight = 2;   
    server 192.168.56.3 weight = 8;
}
ip_hash -ip 绑定

每个请求按访问ip的哈希结果分配,使来自同一个ip的访客固定访问同一台服务器(同时解决session共享的问题)

upstream backserver{
  ip_hash
   server 192.168.56.1;
    server 192.168.56.3;
}
fair(第三方插件)

相对于更加智能的算法,可以根据页面大小和加载时间的长短智能的进行负载均衡,响应时间较短的则优先被访问到

upstream backserver{
   server 192.168.56.1;
    server 192.168.56.3;
    fair;
}  

总而言之就是服务器响应较快的先被访问到

url_hash
按访问的url地址结果来分配请求,使每个URL定向到同一个后端服务器,可以进一步提高后端的缓存效率
localtion指令
根据用户指令请求的URL的不同来执行不同的应用,根据URL进行路径匹配
匹配符匹配规则优先级
=精确匹配1
^~以某个字符串开头 2 ~ 区分大小写的正则匹配3
~*不区分大小写的正则匹配4
!~区分大小写不匹配的正则5
!~*不区分大小写不匹配的正则6
/通用匹配,任何请求都会匹配到7
示例

优先级1=======精确匹配,根路径

location =/{
 return /www/data
}     

优先级2=======以/mete开头的,区分大小的,优先匹配路径

location ^~ /mete
{ 
    alias /data/static
}

优先级3=======区分大小写的正则匹配,匹配/mete 路径

location ~/mete
{
   alias /data/static
}

优先级4=======不区分大小写,所有满足相应条件的都进行匹配,带莫某后缀的

location ~ * . * \ .(jpg|png|js|css){
 root /data/static 
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐 昊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值