nginx-基础知识(二)

news2025/4/19 22:05:07

目录

虚拟主机

虚拟主机的功能

虚拟主机的划分方式

基于IP地址进行划分

基于域名进行划分

正向/反向代理

正向代理

反向代理

正向代理和反向代理的区别

负载均衡

负载均衡的类型

负载均衡的作用

nginx并发量比较高的原因

负载均衡的算法

会话保持


虚拟主机

虚拟主机的功能

负责发布需要上传的一些资源

虚拟主机的划分方式

基于端口号进行划分

#使用80端口配置虚拟主机
server {
listen 80 ;
server_name localhost ;
location / {
    root  /usr/share/nginx/webOne ;
    index  index.html index.htm ;
  }
}

#使用81端口配置虚拟主机
server {
listen 81 ;
server_name localhost ;
location / {
    root  /usr/share/nginx/webTwo ;
    index  index.html index.htm ;
  }
}

#使用82端口配置虚拟主机
server {
listen 82 ;
server_name localhost ;
location / {
    root  /usr/share/nginx/webThree ;
    index  index.html index.htm ;
  }
}

基于IP地址进行划分

#使用192.168.211.145进行虚拟主机的配置
server {
listen 192.168.211.145:80 ;
server_name localhost ;
localtion / {
    root /usr/share/nginx/webOne ;
    index index.html index.htm ;
  }
}

#使用192.168.211.155进行虚拟主机的配置
server {
listen 192.168.211.145:80 ;
server_name localhost ;
localtion / {
    root /usr/share/nginx/webTwo ;
    index index.html index.htm ;
  }
}

#使用192.168.211.165进行虚拟主机的配置
server {
listen 192.168.211.145:80 ;
server_name localhost ;
localtion / {
    root /usr/share/nginx/webThree ;
    index index.html index.htm ;
  }
}

基于域名进行划分

#使用www.abc.com进行虚拟主机的配置
server {
listen 80;
server_name www.abc.com ;
location / {
  root /usr/share/nginx/webOne ;
  index index.html index.htm ;
  }
}

#使用www.bcd.com进行虚拟主机的配置
server {
listen 80;
server_name www.bcd.com ;
location / {
  root /usr/share/nginx/webTwo ;
  index index.html index.htm ;
  }
}

#使用www.cde.com进行虚拟主机的配置
server {
listen 80;
server_name www.cde.com ;
location / {
  root /usr/share/nginx/webThree ;
  index index.html index.htm ;
  }
}

正向/反向代理

正向代理

客户端配置代理来代替自己进行请求,使用正向代理时,客户端对服务器来说是透明的,服务端不知道客户端的真是地址,常见的应用为翻墙软件的实现

反向代理

服务端通过设置代理来隐藏自己的真实信息,因此,反向代理过程中,服务端对于客户端是透明的

正向代理和反向代理的区别

正向代理过程中:客户端的请求由代理服务器进行转发,然后获取返回信息后,将返回的信息给客户端,因此过程中客户端的地址对于服务器是透明的;

反向代理过程中,客户端的请求转发给代理服务器,由代理服务器发送给服务端,所以过程中,服务器对于客户端来说是透明的

负载均衡

负载均衡的类型

软件: nginx   haproxy   LVS

特点: 低成本,无需硬件,利用现有服务器资源计科进行部署,开源支持,可以运行在物理机,虚拟机或者容器中

适用于中小型企业或者初创公司

云设备:AWS Elastic Load Balancing(ELB)

支持应用负载均衡,网络负载均衡,和经典负载均衡

使用与云原生或微服务架构,跨国或跨区域业务

硬件:F5, A10 Network Thunder 

特点:高性能,高成本,高可靠性

适用于大型企业或数据中心,对性能和可靠性要求极高的关键业务

负载均衡的作用

如果代理服务器将所有的请求转发给同一台服务器,那么单台主机的压力会比较大,并且单台主机的性能会产生瓶颈,对于业务的影响比较大,因此可以使用负载均衡来对多个相同的web页面或者服务进行代理,从而实现业务性能的提高。当客户端发送请求到代理服务器时,代理服务器将请求通过负载均衡算法分发给不同的后台服务端,从而实现请求的分发,降低了单节点主机的压力,从而提高了整体业务的性能

nginx并发量比较高的原因

首先nginx采用模块化的方式,不同的模块对应不同的功能--常用模块以及作用

其次,nginx采用异步非阻塞的方式进行请求的处理--用自己的话叙述异步非阻塞

最后,nginx采用I/O多路复用来进行消息的处理---用自己的话叙述I/O多路复用

负载均衡的算法

默认算法; 

轮询: 当请求从代理转发到服务器时,代理会挨个对请求进行转发

缺点: 当各个服务器的配置不同时,可能会导致配置较差的服务器产生性能问题

解决方法;

加权轮询: 对于不同的服务端设置不同的权重,权重较大的服务端会被优先分配请求

其他算法;.

ip_hash:当相同的服务端ip进行请求时,总是会使用相同的代理服务器进行请求的返回

url_hash:根据请求的URL进行请求分发,保证相同的URL请求由同一台主机进行返回

缺点:当后台的主机宕机时,所请求的信息不能得到正常的返回结果

lease_conn: 当代理进行请求分发时,优先对连接数较少的主机进行请求的分发

lease_time: 当代理进行请求分发时,根据平均处理时间和连接数量进行请求的分配 

会话保持

ip_hash和url_hash进行会话的保持,可以提高用户的使用体验

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

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

相关文章

idea maven 命令后控制台乱码

首先在idea中查看maven的编码方式 执行mvn -v命令 查看编码语言是GBK C:\Users\13488>mvn -v Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: D:\maven\apache-maven-3.6.3\bin\.. Java version: 1.8.0_202, vendor: Oracle Corporation, runt…

C# dll 打包进exe

Framework4.x推荐使用 Costura.Fody 1. 安装 NuGet 包 Install-Package Costura.Fody工程自动生成packages文件夹,300M左右。生成FodyWeavers.xml、FodyWeavers.xsd文件。 2. 自动嵌入 编译后,所有依赖的 DLL 会被自动嵌入到 EXE 中。 运行时自动解压…

【数据融合实战手册·实战篇】二维赋能三维的5种高阶玩法:手把手教你用Mapmost打造智慧城市标杆案例

在当今数字化时代,二三维数据融合技术的重要性不言而喻。二三维数据融合通过整合二维数据的结构化优势与三维数据的直观性,打破了传统数据在表达和分析上的局限,为各行业提供了更全面、精准的数据分析手段。从智慧城市建设到工业智能制造&…

ValueError: model.embed_tokens.weight doesn‘t have any device set

ValueError: model.embed_tokens.weight doesn’t have any device set model.embed_tokens.weight 通常在深度学习框架(如 PyTorch)中使用,一般是在处理自然语言处理(NLP)任务时,用于指代模型中词嵌入层(Embedding layer)的权重参数。下面详细解释: 词嵌入层的作用 …

解决:QTcpSocket: No such file or directory

项目场景: 使用QTcpSocket进行网络编程: 调用connectToHost连接服务器,调用waitForConnected判断是否连接成功,连接信号readyRead槽函数,异步读取数据,调用waitForReadyRead,阻塞读取数据。 问题描述 找不…

支付宝商家转账到账户余额,支持多商户管理

大家好,我是小悟 转账到支付宝账户是一种通过 API 完成单笔转账的功能,支付宝商家可以向其他支付宝账户进行单笔转账。 商家只需输入另一个正确的支付宝账号,即可将资金从本企业支付宝账户转账至另一个支付宝账户。 该产品适用行业较广&am…

3.Chromium指纹浏览器开发教程之chromium119版本源码拉取

获取Chromium最新版源码 Git是一个分布式版本控制系统,用于管理代码的版本和协作开发,它是目前最流行和广泛使用的版本控制系统之一。在Chromium项目中,通常使用gclient来获取Chromium的源代码,并使用Git来对代码进行版本控制和管…

【计算机视觉】OpenCV项目实战- Artificial-Eyeliner 人脸眼线检测

Artificial-Eyeliner 人脸眼线检测 项目介绍运行方式运行步骤常见问题及解决方法1. dlib 安装失败其他注意事项 2. 缺少 make / gcc3. **依赖库安装问题**:4. *人脸关键点检测失败:5. 眼线效果不理想:6. 实时处理延迟:7. 保存文件…

工作总结(十二)——迁移svn单项目到gitlab上,保留历史提交记录

文章目录 前言一、目的二、操作步骤1.创建项目库2.复制历史提交者账号3.复制待迁移项目以及历史记录4.push到gitlab远程仓库 总结 前言 本系列文章主要记录工作中一些需要记录的内容 一、目的 因为一些原因,我需要将svn库上的某个项目迁移到公司的gitlab库管理平台…

Git Flow

Git Flow深度解析:企业级分支管理实战指南 前言 在持续交付时代,分支策略决定团队协作效率。Git Flow作为经典的分支管理模型,被Apache、Spring等知名项目采用。2023年JetBrains开发者调查报告显示,Git Flow仍是中大型项目最常用…

Flink介绍——实时计算核心论文之Kafka论文详解

引入 我们通过S4和Storm论文的以下文章,已经对S4和Storm有了不错的认识: S4论文详解S4论文总结Storm论文详解Storm论文总结 不过,在讲解这两篇论文的时候,我们其实没有去搞清楚对应的流式数据是从哪里来的。虽然S4里有Keyless …

AI Agents系列之构建多智能体系统

🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创…

OJ笔试强训_1至24天

OJ笔试强训 Day01 [NOIP2010]数字统计_牛客题霸_牛客网 点击消除_牛客题霸_牛客网 两个数组的交集_牛客题霸_牛客网 Day02 牛牛的快递_牛客题霸_牛客网 最小花费爬楼梯_牛客题霸_牛客网 数组中两个字符串的最小距离__牛客网 Day03 简写单词_牛客题霸_牛客网 dd爱框框_…

3款顶流云电脑与传统电脑性能PK战:START云游戏/无影云/ToDesk云电脑谁更流畅?

这里写目录标题 一、前言二、本地机器配置环境三、START云游戏/无影云/ToDesk云电脑配置对比3.1 START云游戏3.2 无影云个人版3.3 ToDesk云电脑 四、本地电脑与云电脑性能实战4.1 游戏场景体验4.1.1 本地电脑测试4.1.2 云电脑测试英雄联盟黑神话悟空其他游戏 4.2 主流设计场景体…

java IO/NIO/AIO

(✪▽✪)曼波~~~~!让曼波用最可爱的赛马娘方式给你讲解吧!(⁄ ⁄•⁄ω⁄•⁄ ⁄) 🎠曼波思维导图大冲刺(先看框架再看细节哦): 📚 解释 Java 中 IO、NIO、AIO 的区别和适用场景: …

java输出、输入语句

先创建一个用于测试的java 编写程序 #java.util使java标准库的一个包,这里拉取Scanner类 import java.util.Scanner;public class VariableTest {public static void main(String[] args) {#创建一个 Scanner 对象Scanner scanner new Scanner(System.in);System.…

宏基因组产品升级——抗菌肽数据库APD

抗菌肽(Antimicrobial Peptides,简称AMPs)是一类存在于多种生物体中的天然分子。它们在抵御微生物感染中扮演着重要角色,发挥着先天免疫反应的作用。抗菌肽功能分类广泛,包括:抗菌,抗生物膜&…

线程池七个参数的含义

Java中的线程池里七个参数的以及其各自的含义 面试题:说一下线程池七个参数的含义? 所谓的线程池的 7 大参数是指,在使用 ThreadPoolExecutor 创建线程池时所设置的 7 个参数,如以下源码所示: public ThreadPoolExe…

Windows suwellofd 阅读器-v5.0.25.0320

Windows suwellofd 阅读器 链接:https://pan.xunlei.com/s/VOO7tUkTHHTTjSe39CeVkUHbA1?pwd3ibx# OFD(Open Fixed-layout Document) , 数科OFD阅读器支持国标版式、可信阅读、是电子发票、电子证照,电子病历等电子文件理想阅读工具。 多格…

三大等待和三大切换

三大等待 1、三大等待:等待的方式有三种:强制等待,隐性等待,显性等待。 1、强制等待:time.sleep(2),秒 优点:使用简单缺点:等待时间把握不准,容易造成时间浪费或者等待时…