Nginx -Web服务器/反向代理/负载均衡
创始人
2025-01-08 16:36:21
0

文章目录

  • 一、web服务
    • 1.1 nginx安装
    • 1.2 配置文件
    • 1.3 Nginx处理Web机制
  • 二、反向代理
  • 三、负载均衡
    • 3.1 分类
    • 3.2 负载相关配置文件
    • 3.3 keepalive 提高吞吐量
    • 3.4 配置浏览器缓存
  • 附、JMeter性能测试工具


以赛促学内容,大概率感觉会使用nginx做web服务,特对nginx做总结归纳.

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。
官网:http://nginx.org/https://github.com/nginx/nginx.org
在这里插入图片描述

一、web服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
高可用 keepalived
在这里插入图片描述在这里插入图片描述

1.1 nginx安装

# 查询 nginx -v #安装版本 dnf search  nginx #安装 dnf install nginx -y # 查找配置文件 rpm -qa |grep nginx rpm -qa |grep nginx rpm -qc nginx-1.20.1-10.el9.x86_64 vim /etc/nginx/nginx.conf #验证配置文件,也显示位置 nginx -t  ...... nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ...... #启动 systemctl enable --now nginx.service systemctl status nginx.service ss -ntlp |grep 80 

安装验证
在这里插入图片描述

在这里插入图片描述

1.2 配置文件

在这里插入图片描述

#备份配置文件 mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak #重新配置文件 touch nginx.conf vim nginx.conf ......... # events 块用于配置连接处理的设置。它通常位于 http 块之外, #但也可以放在 server 或 location 块内。不写会报错. events { }  http {         server {                 listen 80;  #端口                 server_name localhost; #IP 域名                 root /usr/share/nginx/lih;# 根目录 不写则默认/usr/share/nginx/html;                 index haha.html;# 首页 不写则默认index         } } ......... nginx -s reload # 重新加载配置文件,-s 发送命令.Nginx 会尝试平滑地重启工作进程. nginx -t #用于检查 Nginx 配置文件的语法是否正确 

配置中http-server中的location有更复杂的配置。可有正在表达式~

#无参数是匹配root/app中的index文件     location /app {                root /usr/share/nginx/lih;        } #~正则表达式,制访问6-9的文件,可将root路径提出。  	root /var/www/localhost; 	location ~ /files/file[6-9].file{                        } # 307 重新定向 访问temp自动到/app/haha.html     root /var/www/localhost;               location /temp{         return 307 /app/haha.html;                 } # 精确匹配                    location =/temp{       root /var/www/localhost;                 } 

在这里插入图片描述

  # 增加不同的服务端口89   server { 	  listen 89; 	  server_name localhost; 	  #默认#root /usr/share/nginx/html下的index.html 	  location /app { 	  	root /usr/share/nginx/lih2; 	  	# index默认是app里的index.html 	  }   }   # 增加不同的服务端口90   server { 	  listen 90; 	  server_name localhost; 	   	  location /views { 		  root /opt/RuoYi-Vue/ruoyi-ui/src;#程序文件 		  index index.vue;# vue的文件架构还需研究下 	  } 	#和上面效果一样 使用alias别名,隐去路径。     location /static {         alias /opt/RuoYi-Vue/ruoyi-ui/src/views;     index index.vue;     }    }  

1.3 Nginx处理Web机制

在这里插入图片描述
异步,多路复用。
在这里插入图片描述
配置文件中的events 块用于配置连接处理的设置。案例如下:

events {     worker_connections 1024; # 默认每个工作进程允许的最大并发连接数     multi_accept on;         # 允许多个连接同时被接受     use epoll;               # 默认使用 epoll 事件模型 } # epoll是Linux下的一种I/O复用技术,主要用于提高高并发服务器程序的性能。如图相对于传统事件处理,减少了进程。 

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

#ss:专门用于显示套接字统计信息,包括TCP和UDP套接字的状态、端口号、连接状态等。 #优势在于可以更快地显示大量套接字连接的信息。 ss -ntlp |grep 80 #ps:提供进程的静态信息,包括进程ID (PID)、CPU和内存使用情况、状态、启动时间等。 #支持多种输出格式,如较详细的长格式(-l选项)或完整格式(-f选项)。 ps -ef |grep nginx 

在这里插入图片描述

二、反向代理

在这里插入图片描述

server {     listen 80;     server_name localhost;     location / {         proxy_pass http://tomcats;# 需和upstream的名字一样     } } # 配置上游服务器 upstream tomcats {            server localhost:89;      } 

三、负载均衡

3.1 分类

在这里插入图片描述

负载均衡是一种优化手段,用于在多个服务器之间均匀地分配工作负载,从而提高系统整体的性能和可靠性
载体维度分类硬件负载均衡:这种方案通常使用专用的硬件设备,如F5和A10,具有高性能和全面的功能,但成本较高且扩展性有限。
软件负载均衡:通过在标准服务器上运行的软件实现,例如Nginx、HAProxy和LVS。这些软件负载均衡器具有部署简单、成本低、灵活性高等优点。
网络通信分类 四层负载均衡:基于传输层的IP地址和端口进行请求转发,性能较好,通常用于处理大量网络流量。
七层负载均衡:基于应用层信息(如URL、HTTP头部等)进行决策,可以提供更细粒度的控制,常用于需要更智能路由的场景

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

3.2 负载相关配置文件

http {     # 反向代理服务     server {         listen 80;         server_name localhost;         location / {             proxy_pass http://tomcats;# 需和upstream的名字一样         }     }     # 配置上游服务器     upstream tomcats {                server localhost:89;             server localhost:90;             # ip_hash;#hash #hash算法分配,即每个ip机器对应固定             # least_conn; #最少连接             #hash $request_uri;#hash根据url算法             #server localhost:89 weight =1;#默认为1             #server localhost:90 weight= 5;     }     # 89端口服务     server {         listen 89;         server_name localhost;         root /usr/share/nginx/lih2;#更换根路径         #index index.html;     }     #90端口服务     server {         listen 90;         server_name localhost;         #index index.html; 不写使用默认根路径和默认主文件     } } 

分别显示89,90轮询服务,默认为weight=1平均轮询。
在这里插入图片描述
在这里插入图片描述

#nginx 做负载均衡的案例     server {         listen 80;  #端口         server_name localhost; #IP 域名          location / {                 proxy_pass http://proxy;         }     }      # 两个服务端口     upstream proxy{         server localhost:802;         server localhost:803;     }    # 不要再加httpserver服务端口重复了    # server {    #    listen 802;    #    server_name localhost;    # }     #server {    #   listen 803;    #  server_name localhost;     #} 
# 配置上游服务器 upstream tomcats {         server localhost:89 weight =1;#默认为1         server localhost:90 down;         server localhost:91 backup;         server localhost:92 fail_timeout=10#默认10s } 

在这里插入图片描述

3.3 keepalive 提高吞吐量

upstream tomcats {         server localhost:90 ;         keepalive 32;#32个线程,不用反复消失创建 }  server {     listen 80;     server_name localhost;     location / {             proxy_pass http://tomcats;             proxy_http_version 1.1;# keepalive相关,具体各位自行研究             proxy_set_header Connection "";# keepalive相关,具体各位自行研究     } } 

JMeter测试吞吐量为2倍
在这里插入图片描述在这里插入图片描述

3.4 配置浏览器缓存

# 各自有空去研究吧 proxy_cache_path  /... 

在这里插入图片描述

附、JMeter性能测试工具

Meter是一种可以在不同协议或技术上执行负载测试,面向性能的业务(功能)测试,回归测试等的软件
官网:https://jmeter.apache.org/
教程文档参考:
https://blog.csdn.net/yaorongke/article/details/82799609
https://iowiki.com/jmeter/jmeter_quick_guide.html

相关内容

热门资讯

明白辅助挂!微信小程序功夫川码... 明白辅助挂!微信小程序功夫川码辅助(辅助)果然真的有辅助app(的确有挂)1、不需要AI权限,帮助你...
2026版复盘!宝宝浙江辅助器... 2026版复盘!宝宝浙江辅助器(辅助)真是确实有辅助工具(有挂助手)1、宝宝浙江辅助器透视辅助软件激...
目前来看!雀友会广东潮汕辅助有... 目前来看!雀友会广东潮汕辅助有开挂(辅助)本来真的有辅助技巧(有挂讲解)1、下载好雀友会广东潮汕辅助...
2026版攻略!卡农免费辅助(... 2026版攻略!卡农免费辅助(辅助)切实真的是有辅助神器(真的有挂)1、游戏颠覆性的策略玩法,独创攻...
今年以来!微乐挖坑内购破解(辅... 今年以来!微乐挖坑内购破解(辅助)一贯是真的有辅助工具(有挂功能)1、不需要AI权限,帮助你快速的进...
方法辅助挂!雀神挂件价格开挂透... 方法辅助挂!雀神挂件价格开挂透视(辅助)切实真的有辅助插件(有挂详情)1、这是跨平台的雀神挂件价格开...
相较于以往!全民内蒙古辅助器(... 相较于以往!全民内蒙古辅助器(辅助)本来是有辅助方法(有挂存在)相较于以往!全民内蒙古辅助器(辅助)...
据了解!河洛杠次脚本开发(辅助... 据了解!河洛杠次脚本开发(辅助)一贯是有辅助工具(真的有挂)1、游戏颠覆性的策略玩法,独创攻略技巧玩...
不少玩家反映!科乐游戏辅助脚本... 不少玩家反映!科乐游戏辅助脚本视频(辅助)其实真的有辅助插件(发现有挂)1、科乐游戏辅助脚本视频脚本...
有了最新消息!三哥玩辅助(辅助... 有了最新消息!三哥玩辅助(辅助)一直确实有辅助教程(有挂方略)1、打开软件启动之后找到中间准星的标志...