由浅入深学习nginx

nginx(高性能的http和反向代理服务器)的优点:
(1)占有内存少
(2)并发能力强(支持5万个)
(3)专为性能优化而开发
nginx主要可以实现的功能有这么几个,反向代理,负载均衡和动静分离以及高可用这几个功能。

nginx文件配置的说明:

三部分组成
(1)全局块
#从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括
运行nginx服务器的用户,允许生成的worker process数,锦程PID存放路径,日志存放路径和类型以及
配置文件的引入

# 全局块
#user  nobody;# 表示nginx服务器并发处理服务的关键配置,worker_process值越大,可以支持的并发处理量也越多
# 但是会受到硬件,软件等设备的制约
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;

(2)events块

# 主要影响nginx服务器与用户的网络连接,常用的设置包括是否开启对work process下的
# 网络连接进行序列化,是否允许同事接收多个网络连接,选取哪种事件驱动模型来处理连接
# 请求,每个word process可以同时支持的最大连接数
events {worker_connections  1024;
}

(3)http块

反向代理

1.正向代理
在这里插入图片描述
2.反向代理
1.客户端不需要做任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端。此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器ip地址
在这里插入图片描述
(1)反向代理实例1
实现效果: 浏览器中输入www.123.com,通过nginx定位到192.168.17.129:80,然后再转发到127.0.0.1:8000,对外暴露的是192.168.17.129:80,域名www.123.com在windows的host文件进行配置。

http {include       mime.types;default_type  application/octet-stream;#access_log  logs/access.log  main;sendfile        on;#gzip  on;# sever和虚拟机有密切关系,包括全局sever块和location块server {# 监听的端口号是8080端口号listen       8080;# 监听的主机名称是localhostserver_name  192.168.17.128;#charset koi8-r;#access_log  logs/host.access.log  main;# 在访问192.168.17.128的时候会通过location给你进行转接location / {root   D:/vue3管理系统/admin/dist/;# 当访问到192.168.17.1288080的时候,就会给咱们转发到http://127.0.0.1:8080proxy_pass http://127.0.0.1:8080;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000#\.php$相当于是个路径正则校验,当你访问的路径中有\.php$,然后做一些请求的跳转# 或者是相关的操作#location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}}}

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

server {listen       9001;server_name  192.168.17.129;#    ~  这个符号表示咱们用的是正则校验,# 当路径中有edu,就给转发到http://localhost:8081location ~ /edu/ {proxy_pass http://localhost:8081;}#    当路径中有vod,就给转发到http://localhost:8002location ~ /vod/ {proxy_pass http://localhost:8002;}
}

负载均衡(也可以叫请求均衡)

#实现效果:(1)在浏览器地址栏中输入地址http://192.168.17.129/edu/a.html,负载均衡效果 平均8080和8081端口中

在这里插入图片描述

http {# 已进行负载均衡的ip列表# myserver是起的名字upstream myserver {# 分配策略# (1)轮询# 默认策略:每个请求按时间顺序注意分配到不同的后端服务器,服务器当季会自动剔除服务器#  (2)weight# weight代表权重,权重约个奥被分配的客户端越多server 192.168.17.128:8080 weight = 1;server 192.168.17.128:8180 weight = 1;# (3)ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个# 后端服务器,可以解决session的问题(第一次访问的是哪台服务器,以后就访问哪台服务器)# ip_hash# server 192.168.17.128:8080 ;# server 192.168.17.128:8180 ;# (4)fair第三方# 按照后端服务器的响应时间分配请求,响应时间端的优先分配# server 192.168.17.128:8080 ;# server 192.168.17.128:8180 ;# fair;}server {# 监听的端口号是8080端口号listen       8080;# 监听的主机名称是localhostserver_name  192.168.17.128;# 在访问192.168.17.128的时候会通过location给你进行转接location / {root   html;# 当访问到192.168.17.1288080的时候,就会给咱们转发到					#http://127.0.0.1:8080	proxy_pass http://myserver;index  index.html index.htm;}}

动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器解析,加快解析的进度,降低单个服务器的压力。
通过location指定不同的后缀名实现不同的请求转发。通过expires参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求与流量。具体Expires定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。我这里设置3d,表示在这三天之内访问这个url,发送一个请求,比对服务器该文件最后时间有没有变化,则不会从服务器抓取,返回状态码304.如有修改,则直接从服务器重新下载,返回状态码200+。


# 三部分组成
# (1)全局块
# 从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括
# 运行nginx服务器的用户,允许生成的worker process数,锦程PID存放路径,日志存放路径和类型以及
# 配置文件的引入# (2)events块
# (3)http块# 全局块
#user  nobody;# 表示nginx服务器并发处理服务的关键配置,worker_process值越大,可以支持的并发处理量也越多
# 但是会受到硬件,软件等设备的制约
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;# 主要影响nginx服务器与用户的网络连接,常用的设置包括是否开启对work process下的
# 网络连接进行序列化,是否允许同事接收多个网络连接,选取哪种事件驱动模型来处理连接
# 请求,每个word process可以同时支持的最大连接数
events {worker_connections  1024;
}# 实现效果
# (1)在浏览器地址栏中输入地址http://192.168.17.129/edu/a.html,负载均衡效果
# 平均80808081端口中
# (http {}server {# 监听的端口号是8080端口号listen       8080;# 监听的主机名称是localhostserver_name  192.168.17.128;# 在访问192.168.17.128的时候会通过location给你进行转接location /www/ {root   /data/;index  index.html index.htm;}# 访问路径http://192.168.17.128/image/01.jpglocation /image/ {root   /data/;autoindex on;}
}

高可用
在这里插入图片描述
如何实现:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/162754.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SD/SDIO(1):SD总线协议介绍

SD标准提供了很大的灵活性,除了作为存储卡外,还提供了SD卡槽的标准来扩展设备的功能。本篇文章就先来介绍一下SD总线的规范。对于SD/MMC协议的发展历史和概念介绍,可以参考我的这篇文章:SD、SDIO和MMC接口基础和规范介绍 文章目录…

C# 关于托管调试助手 “FatalExecutionEngineError“:“运行时遇到了错误。解决方案

托管调试助手 “FatalExecutionEngineError”:“运行时遇到了错误。此错误的地址为 0x740161f8,在线程 0x1174 上。错误代码为 0xc0000005。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 …

回顾 | E³CI效能认知与改进论坛,助力企业研发效能度量和提升

2023年8月,TiD质量竞争力大会组委会和ECI专家委员会成功举办TiD大时段课程“度量驱动研发效能提升”与“ECI效能认知与改进论坛”。与会专家以《ECI软件研发效能度量规范》团体标准为要点,为企业研发效能度量和提升分享诸多实践成果与经验。 《ECI软件研…

手术麻醉临床信息管理系统源码,客户端可以接入监护仪、麻醉机、呼吸机

一、手术麻醉临床信息管理系统介绍 1、手术麻醉临床信息管理系统是数字化手段应用于手术过程中的重要组成部分,用数字形式获取并存储手术相关信息,既便捷又高效。既然是管理系统,那就是一整套流程,管理患者手术、麻醉的申请、审批…

摩尔信使MThings的协议转换(数据网关)功能

摩尔信使MThings可以作为现场总线(RS485)和以太网的数据中枢,并拥有强大的Modbus协议转换功能。 数据网关功能提供协议转换和数据汇聚功能,可实现多维度映射,包括:不同的通道(总线)类型、协议类型&#xff…

2023年【公路水运工程施工企业安全生产管理人员】新版试题及公路水运工程施工企业安全生产管理人员模拟试题

题库来源:安全生产模拟考试一点通公众号小程序 公路水运工程施工企业安全生产管理人员新版试题是安全生产模拟考试一点通生成的,公路水运工程施工企业安全生产管理人员证模拟考试题库是根据公路水运工程施工企业安全生产管理人员最新版教材汇编出公路水…

tomcat动静分离

1.七层代理动静分离 nginx代理服务器:192.168.233.61 代理又是静态 tomcat1:192.168.233.71 tomcat2:192.168.233.72 全部关闭防火墙 在http模块里面 tomcat1,2 删除上面的hostname 148 配置 直接访问 http://192.168.66.17/index.jsp 2.四层七层动…

web前端面试-- http的各个版本的区别(HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP/3.0)

本人是一个web前端开发工程师,主要是vue框架,整理了一些面试题,今后也会一直更新,有好题目的同学欢迎评论区分享 ;-) web面试题专栏:点击此处 http的各个版本的区别 HTTP(超文本传输协议&…

MySQL学习(七)——存储过程

文章目录 1. 基本语法2. 变量2.1 系统变量2.2 用户定义变量2.3 局部变量 3. 逻辑关系3.1 if3.2 参数3.3 case3.4 while3.4 repeat3.5 loop 4. 存储结构4.1 游标4.2 条件处理程序4.3 存储函数 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储…

VMware安装银河麒麟高级服务器操作系统V10

目标 VMware安装银河麒麟高级服务器操作系统V10背景介绍环境准备安装步骤配置VM虚拟机系统安装 VMware安装银河麒麟高级服务器操作系统V10 背景介绍 近期,随着国产信创的持续发热和大众关注度的上升,我们公司决定与时俱进,针对国产技术趋势…

selenium教程 —— css定位

说明:本篇博客基于selenium 4.1.0 selenium-css定位 element_css driver.find_element(By.CSS_SELECTOR, css表达式) 复制代码 css定位说明 selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法 css定位优点…

优雅而高效——立即执行函数表达式()();

😆博主:小猫娃来啦 😆文章核心:优雅而高效——立即执行函数表达式()(); 文章目录 前言立即执行函数表达式的定义和特点立即执行函数表达式的应用场景封装私有变量和方法避免全局变量污染模块化开发 立即执行函数表达式的写法和示例…

pinia下载使用时报错如何解决?

报错 可能是因为pnpm下载的时候版本出现了问题 更新pnpm的版本 一、windowr打开终端 输入pnpm -v检查是否是最新版本 如果是8.6.2的话 就更新 更新步骤如下: 二:打开pnpm下载的网盘位置 我的是在c盘 找到里面的用户文件夹 点击选择dell里面的App data文…

【AI视野·今日Sound 声学论文速览 第二十六期】Mon, 16 Oct 2023

AI视野今日CS.Sound 声学论文速览 Mon, 16 Oct 2023 Totally 7 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Low-latency Speech Enhancement via Speech Token Generation Authors Huaying Xue, Xiulian Peng, Yan Lu现有的基于深度学习的语音增强…

数字孪生技术在智慧城市应用的推进建议

(一)坚持需求牵引,强场景重实效 必须始终坚持以人为本、场景导向、需求牵引,站在供给侧结构性改革的角度,突出以用促建,强调建用并重,真正发挥数字孪生城市应用建设的实效。从构建数字孪生创新…

分布式内存计算Spark环境部署与分布式内存计算Flink环境部署

目录 分布式内存计算Spark环境部署 1. 简介 2. 安装 2.1【node1执行】下载并解压 2.2【node1执行】修改配置文件名称 2.3【node1执行】修改配置文件,spark-env.sh 2.4 【node1执行】修改配置文件,slaves 2.5【node1执行】分发 2.6【node2、no…

Linux知识点 -- 高级IO(二)

Linux知识点 – 高级IO(二) 文章目录 Linux知识点 -- 高级IO(二)一、IO多路转接 -- poll1.poll接口2.poll实现3.poll优缺点 二、IO多路转接 -- epoll1.epoll接口2.epoll的工作原理3.epoll服务器实现4.epoll的优点5.epoll的工作模式…

Django REST Framework完整教程-认证与权限-JWT的使用

文章目录 1.认证(Authentication)与权限(Permission)1.1.视图添加权限1.2.登录验证1.3.常用DRF自带权限类1.4.自定义权限类1.5.全局权限1.6.函数视图权限 2.认证详解2.1.认证方案2.2.如何使用TokenAuthentication? 3.JSON Web Token(JWT)认证3.1.工作原理3.2.安装3.…

Java学习笔记(四)——程序控制结构

一、顺序控制 二、分支控制 (一)单分支 (二)双分支 (三)多分支 (四)嵌套分支 (五)switch分支结构 (六)if和switch的选择 三、循…

Megatron-LM GPT 源码分析(一) Tensor Parallel分析

引用 本文基于开源代码 https://github.com/NVIDIA/Megatron-LM ,通过GPT的模型运行示例,从三个维度 - 模型结构、代码运行、代码逻辑说明 对其源码做深入的分析。 Tensor Parallel源码分析