Nginx基础(复习理论篇)

news2024/12/26 23:16:21

一、Nginx基本概念

1、Nginx是什么

Nginx是一个高性能的Http和反向代理服务器,其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好。

Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。

2、反向代理

2.1、正向代理

我们平时需要访问国外的浏览器是不是很慢,比如我们要看推特,看GitHub等等。我们直接用国内的服务器无法访问国外的服务器,或者是访问很慢。所以我们需要在本地搭建一个服务器来帮助我们去访问。那这种就是正向代理。(浏览器中配置代理服务器)

2.2、反向代理

我们访问淘宝的时候,淘宝内部肯定不是只有一台服务器,它的内部有很多台服务器,那我们进行访问的时候,因为服务器中间session不共享,那我们是不是在服务器之间访问需要频繁登录,那这个时候淘宝搭建一个过渡服务器,对我们是没有任何影响的,我们是登录一次,但是访问所有,这种情况就是 反向代理。对我们来说,客户端对代理是无感知的,客户端不需要任何配置就可以访问,我们只需要把请求发送给反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器的地址。(在服务器中配置代理服务器)

3、负载均衡

负载均衡需要多个服务器,增加服务器的数量,将请求分发到各个服务器上。将原先请求集中到单个服务器上的情况改为分发到多个服务器上,将负载分发到不同的服务器。

常见的负载均衡方式:

  • 轮询法(默认方法):
    • 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
    • 适合服务器配置相当,无状态且短平快的服务使用。也适用于图片服务器集群和纯静态页面服务器集群。
  • weight权重模式(加权轮询):
    • 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
    • 这种方式比较灵活,当后端服务器性能存在差异的时候,通过配置权重,可以让服务器的性能得到充分发挥,有效利用资源。weight和访问比率成正比,用于后端服务器性能不均的情况。权重越高,在被访问的概率越大
  • ip_hash:
    • 上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。
    • 我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

4、动静分离

  • nginx 将客户端请求进行分类转发,静态资源请求(如html、css、图片等)由静态资源服务器处理。

  • 动态资源请求(如 jsp页面、servlet程序等)由 tomcat 服务器处理。

  • tomcat 本身是用来处理动态资源的,同时 tomcat 也能处理静态资源,但是 tomcat 本身处理静态资源的效率并不高,而且还会带来额外的资源开销。利用 nginx 实现动静分离的架构,能够让 tomcat 专注于处理动态资源,静态资源统一由静态资源服务器处理,从而提升整个服务系统的性能 。

在这里插入图片描述

二、Nginx安装、常用命令和配置文件

1、Nginx的安装

这里直接跳过了(因为此篇本人用来复习,需要教程的网上自行寻找)

2、常用命令

  1. 使用Nginx操作命令前提条件:进行Nginx的目录
    • /usr/local/nginx/sbin
  2. 查看Nginx的版本号
    • ./nginx -v
  3. 启动Nginx
    • ./nginx
  4. 关闭Nginx
    • ./nginx -s stop
  5. 重新加载Nginx
    • ./nginx -s reload

3、Nginx的配置文件

  1. 全局块
    • worker_processes 1;(值越大,可以支持的并发处理量也越多)
  2. events块
    • 涉及的指令主要影响Nginx服务器与用户的网络连接
    • worker_connections 2024;(支持的最大连接数)
  3. http块(主要)
    • http全局块:文件引入、MIME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等
    • server块:(又包含全局server块、location块)
      • server全局块:
        • listen 80;(监听的端口号)
        • server_name localhost;(主机名称)
      • location块:
        • 每个server块中可以包含多个location块。从严格意义上说,location其实是server块的一个指令,但是非常重要,因此这里把它单独列为一个块。location块的主要作用是基于Nginx服务器接收到的请求字符串(例如, server_name/uri-string),对除虚拟主机名称(也可以是IP别名,后文有详细阐述)之外的字符串(前例中“/uri-string”部分)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能都是在这部分实现。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle/plsql报错ORA-01932:ADMIN选项未授权给角色‘CONNECT’

情况如下: create user hikeytdm identified by hikeytdm default tablespace hikeytdm temporary tablespace temp; grant connect,resource,dba to hikeytdm; --grant报错ORA-01932:ADMIN选项未授权给角色‘CONNECT’,应该在cmd里或plsql里…

pytorch学习--第一个模型(线性模型)

目标 我们想通过随机初始化的参数 ω , b \omega ,b ω,b能在迭代过程中使预测值和目标值能无限接近 y ω x b y\omega xb yωxb 定义数据 x torch.rand([60, 1])*10 y x*2 torch.randn(60,1)构建模型 利用pytorch中的nn.Module 想要构建模型时,继承这个类…

SylixOS下SSH和SFTP连接

简要 基于网络的连接(telnet,ftp)方便高效,但其是基于明文的通信,容易被窃取、篡改和攻击,存在网络安全问题,尤其在进行远程访问时,穿过复杂未知的公网环境非常危险,为此…

linux之Ubuntu系列(八)用户管理 修改文件权限

修改文件权限 chown 修改拥有者 修改 文件|目录 的拥有者 sudo chown 用户名 文件名|目录 递归修改文件|目录的组 sudo chgrp -R 组名 文件|目录 递归修改文件权限 chmod -R xxx 文件|目录

mongoDB 分组汇总统计-执行语句(亲测)

# 注意 “gl_id” 需要分组的字段名 “gl_idlCount” 分组后获取数量的字段名(可随意命名) db.getCollection(集合名).aggregate([{ "$group": {"_id": {"gl_id": "$gl_id"},"gl_idlCount": { "…

一文读懂FPC(16)- 关于过孔盖油和过孔开窗的区分

FPC系列文章目录 1.什么是FPC 2.什么是R-FPC 3,FPC的基材 4.FPC基材压延铜和电解铜的区别 5,FPC的辅材 6,FPC常见的四种类型 7,FPC的生产流程简介 8,R-FPC的生产流程简介 9,FPC的发展及应用 10&a…

优思学院|六西格玛管理:依据事实的质量管理方式

一个企业的质量管理制度是否规范,也就是质量管理体系是否很完备的问题,要考察管理体系是否还有哪里不尽完美?各部门之间的连系、调整是否能够顺利进行?各自是否达成在质量保证上的任务等,进行质量管理体系的审核&#…

【无线通信模块】什么是PCB板载天线,PCB板载天线UART/USB接口WiFi模块

基于射频技术的无线模块需要通过天线来发射和接收电磁波信号,市场上常见的天线类型有陶瓷天线、板载天线、棒状天线以及外接天线,外接天线是通过在PCB板上预留IPEX座子,可选天线类型就比较多。本篇SKYLAB小编带大家了解一下板载天线的UART接口…

ROS:pluginlib

目录 一、前言二、概念三、作用四实际用例4.1需求4.2流程4.3准备4.4创建基类4.5创建插件4.6注册插件4.7构建插件库4.8使插件可用于ROS工具链4.8.1配置xml4.8.2导出插件 4.9使用插件4.10执行 一、前言 pluginlib直译是插件库,所谓插件字面意思就是可插拔的组件&…

vue使用docxtemplater导出word实现使用textarea输入的内容换行

注:本文只做导出word并且换行操作,不做vue引入docxtemplater步骤 先看一下实现效果 这是文本域输入的 这是导出来的结果 可以看出来导出来的结果也是换行的呢 接下来我们手摸手操作一下流程 首先咱们捋一捋思路 知道文本域的换行的换行标识符,我们发…

Spingboot 多模块引入第三方jar包

1. 在需要的模块中引入jar包 2. 在此模块中的pom.xml 中引用 3. 要想打包部署服务器&#xff0c;需要在启动模块中添加配置信息 ps&#xff1a;启动模块要引用此模块才能将此一起jar打包部署 <build><plugins><plugin><groupId>org.springframework.…

对链表进行插入排序

给定单个链表的头 head &#xff0c;使用 插入排序 对链表进行排序&#xff0c;并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的&#xff0c;每次只移动一个元素&#xff0c;直到所有元素可以形成一个有序的输出列表。 每次迭代中&#xff0c;插入排序只从输…

刷新vue项目后,在非routerview中的组件获取路由路径永远是“/“的解决方案

问题&#xff1a; //此文件时项目导航栏&#xff0c;不属于router-view的内容 //route.fullPath表示当前的页面路径onMounted(() > {setTimeout(() > {console.log("100ms________", route.fullPath);}, 100);setTimeout(() > {console.log("500ms___…

Comparator.comparing()实现中文排序及空指针处理

一、 Comparator.comparing()的用法请详见以下上一篇文章的汇总介绍。 Comparator用法_乞力马扎罗の黎明的博客-CSDN博客 二、应用示例&#xff1a; 1、中文排序、空值处理 Collator instance Collator.getInstance(Locale.CHINA); checkItemVoList.stream().sorted(Compar…

微服务保护——Sentinel【快速入门】

一、雪崩问题&#x1f349; (一) 什么是雪崩&#x1f95d; 微服务调用链路中的某个服务故障&#xff0c;引起整个链路中的所有微服务都不可用&#xff0c;这就是雪崩。服务D故障引起服务A故障&#xff0c;服务A引起其他服务故障&#xff0c;渐渐导致所有微服务都不可用。有人…

【深入探究人工智能】:历史、应用、技术与未来

深入探究人工智能 前言人工智能的历史人工智能的应用人工智能的技术人工智能的未来当代的人工智能产物结语&#x1f340;小结&#x1f340; &#x1f389;博客主页&#xff1a;小智_x0___0x_ &#x1f389;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &am…

Linux云服务器,docker compose文件部署多个jar,docker部署多模块boot项目

前提条件 Linux服务器 服务器已经安装docker docker已经安装jdk镜像 docker已经安装mysql镜像 将要部署的项目的jar包打包好&#xff0c;项目是多模块springboot项目 部署过程 项目是3个模块的Spring boot项目&#xff0c;打出来3个jar&#xff0c;将这些jar包拷贝到…

小米手把手教你轻松搞定复杂需求!聊聊商家与店铺的关系优化方案

大家好&#xff0c;我是小米&#xff01;今天要和大家分享一次与产品大佬张小姐的有趣对话和我所面对的一项“小需求”。废话不多说&#xff0c;让我们一起来看看如何应对这个需求挑战吧&#xff01; 系统现状 在开始之前&#xff0c;先让我们简单回顾一下目前系统的现有功能…

echarts实现渐变折线图并添加点击事件

折线图点击事件代码: let myChart = this.$echarts.init(document.getElementById(trendBoxECharts))myChart.getZr().on(click, params => {console.log(params)let pointInPixel = [params.offsetX, params.offsetY]if (myChart.containPixel(grid, pointInPixel)) {//点…

云迁移第二波热潮来袭,你准备好了吗?

最近&#xff0c;云迁移再次被频繁提及&#xff0c;企业对云迁移的需求量有回升趋势&#xff0c;究其根本&#xff0c;主要有以下原因&#xff1a; 企业数字化进程加速&#xff0c;本地上云需求强劲 根据《2021中国企业上云指数洞察报告》&#xff0c;我国实体经济上云渗透率…