Nginx安装及介绍

news2024/9/24 23:24:47

前言:传统结构上(如下图所示)我们只会部署一台服务器用来跑服务,在并发量小,用户访问少的情况下基本够用

但随着用户访问的越来越多,并发量慢慢增多了,这时候一台服务器已经不能满足我们了,需要我们增加服务器了(如下图所示),但这种扩展方式并不友好,万一用户在登录了服务器1后下次请求的是服务器2,那这时候就需要重新登录了

所以这时候需要一个中间件来把我们客户端的请求代理到其他的服务器上,完成服务的请求转发,而客户端只要统一访问中间件即可,而这个中间件就是Nginx

1、Nginx的简介

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 ,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。

其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在全球活跃的网姑中有12.18%的使用比率,大约为2220万个网站。

Nginx是一个安装非常的简单、配置文件非常简洁(还能够支持peri语法)、Bug非常少的服务。Nginx启动特别容易,并且几乎可以做到7*24不向斯断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

Nginx代码完全用C语言从头写成,官方数据测试表明能够支持高达50,000个并发连接数的响应。

Nginx的优点:能进行反向代理、负载均衡、动静分离

2、正向代理和反向代理

(1)正向代理是代理用户客户端,为客户端发送请求,对服务器隐藏自己的真实客户端;就例如我们访问谷歌需要连VPN,代理就类似于我们的香港服务器,服务器就类似于美国服务器,我们把请求发送到香港服务器,然后香港服务器帮我们把请求发送到美国服务器上,这种为客户端收发请求的就是正向代理

(2)反向代理以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端;就例如我们访问某大型网站,该网站可能服务器1架设在广州,服务器2架设在北京,然而我们访问的永远是该网站对外的域名(如www.xxx.com),而不是直接请求到具体的服务器上,这种为服务器收发请求的就是反向代理

总的来说正向代理就是指代理的客户端,服务器不知道具体是谁请求的 ,而反向代理指的是代理服务器,客户端不知道具体是哪一台服务器提供的服务,而Nginx就能为我们的服务器提供反向代理的功能

3、负载均衡

Nginx提供的负载均衡策略有2种,内置策略和扩展策略,内置策略为轮询策略、加权轮询策略和ip hash策略

轮询策略:Nginx依次把请求发送到每台服务器上。

加权轮询策略:Nginx根据服务器的权重依次把请求发送到每台服务器上(权重高的接收的请求就多)

ip hash策略:对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,即指定的ip只能访问指定的服务器,可以解决session不共享的问题

4、动静分离

动静分离,在我们的软件开发中,有些请求是需要后端处理的,有些请求是不需要经过后台处理的(如:css、 html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件,Nginx可以让静态资源从Nginx返回,而不再是从服务器返回,从而提高资源响应的速度。

5、安装Nginx

(1)访问Nginx官网:http://nginx.org/en/download.html

效果图:

(2)安装稳定版本即可,根据各自需要安装不同系统的Nginx即可(Window系统版的Nginx安装非常简单,只要解压即可)

6、nginx.conf文件

nginx.conf文件在conf文件夹下,nginx.conf文件是我们最常用使用的用以配置Nginx的文件

创作不易,如果这篇文章对你有帮助,希望能点个赞帮助文章的推广,如果文章有错漏,希望各位能批评指正,谢谢大家。

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

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

相关文章

华为OD机试用Python实现 -【天然蓄水库 or 天然蓄水池】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲天然蓄水库 or 天然蓄水池题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明示例三输入输出说明Python 代码实现算法思路华为OD机试300题大纲 参加华为

Android 分区和内存监控

Andorid之所以是分区,是因为各自有对应的功能和用途的考量,可以进行单独读写和格式化。Android 设备包含两类分区:一类是启动分区,对启动过程至关重要。一类是用户分区,用于存储与启动无关的信息。启动分区boot 分区一…

HTML综合案例练习

一、展示简历内容 可以首先看一下我们的效果,之后再思考怎么实现 总的来说,这个练习不算难。 这里关于这个简历的代码编写我们不说太多,只注意以下几个内容即可: 注意及时查看我们的代码是否符合预期,即一段一段测 …

@ModelAttribute注释,接收用户不能做出修改的值,定义好值不变化

举例:有时候我们做修改的时候,比如用户的生日,和姓名用身份证验证之后就默认了你的资料,后期在修改个人资料的时候是不允许修改的,只能修改兴趣等等......1.设置实体类User,定义好属性,以及get,…

进程优先级(Linux)

目录 优先级VS权限 基本概念 查看系统进程 几个重要信息 PRI and NI PRI vs NI top命令 上限: 详细步骤 下限: 其他概念 优先级VS权限 权限:能or不能 优先级:已经能,但是谁先谁后的问题(CPU资源有…

(十七)操作系统-进程同步、互斥

文章目录一、知识总览二、进程同步三、进程互斥1. 临界资源2. 互斥3. 对临界资源的互斥访问,在逻辑上分为四个部分4. 为了实现对临界资源的互斥访问,同时保证系统整体性能,需要遵循的原则五、总结一、知识总览 二、进程同步 同步亦称直接制约…

Kubernetes学习笔记-pod与集群节点的自动伸缩20230225

前言pod手动横向扩展:通过ReplicationController、ReplicaSet、Deployment等可伸缩资源的replicas字段,来手动实现pod中应用的横向扩展。pod纵向扩展:通过增加pod容器的资源请求和限制(pod创建时)pod自动横向扩展&…

Allegro如何快速把视图居中显示操作指导

Allegro如何快速把视图居中显示操作指导 用Allegro进行PCB设计的时候,为了方便检查和设计,时常需要将视图居中显示。一般地,会使用鼠标的中键进行放大和缩小,或者使用Zoom in和Zoom out来调整视图 Allegro还支持快速将视图居中 具体操作如下 点击View

Flume三种组件的选择对比

文章目录1.source2.channel3.sink1.source Source: 数据源:通过source组件可以指定让Flume读取哪里的数据,然后将数据传递给后面的 channel Flume内置支持读取很多种数据源,基于文件、基于目录、基于TCP\UDP端口、基于HTTP、Kafka的 等等、当然了&#x…

基于Windows下离线安装当前最新Arduino ESP32 SDK(2.0.7)固件开发包

基于Windows下离线安装当前最新Arduino ESP32 SDK(2.0.7)固件开发包✨写这篇的文章的初衷,是由于在前几天想通过离线一键安装包方式实现升级安装,结果发现解压后,可以找到开发板,但是无法上传代码&#xff…

JavaSe第3次笔记

1.String str "hello";字符串类型。 2.两个字符串类型相加意思是拼接,类似于c语言里面的strcat函数。 3.整型变成字符串类型: int a 10; String str String. valueOf(a); 4.当字符串和其他类型进行相加的时候,结果就是字符串。(不完全…

imporve-3

JSX语法糖本质 JSX是语法糖,通过babel转成React.createElement函数,在babel官网上可以在线把JSX转成React的JS语法 首先解析出来的话,就是一个createElement函数然后这个函数执行完后,会返回一个vnode通过vdom的patch或者是其他的…

Java基础--IO操作

一、IO原理及分类 一、IO原理 1、I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理设备之间的数据传输,如读写文件,网络通信等。 2、java程序中对于数据的输入/输出操作一般都是以流的方式进行 3、java.io包下提供各…

【LeetCode】剑指 Offer(9)

目录 题目:剑指 Offer 25. 合并两个排序的链表 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 题目:剑指 Offer 26. 树的子结构 - 力扣&#…

阿里测试经验7年,从功能测试到自动化测试,我整理的超全学习指南

做测试七年多,有不少人问过我下面问题: 现在的手工测试真的不行了吗? 测试工程师,三年多快四年的经验,入门自动化测试需要多久? 自学自动化测试到底需要学哪些东西? 不得不说,随着…

TCKGE: Transformers with contrastive learning for knowledge graph embedding

概述: 以前的一些知识图谱嵌入方法由于其浅层的网络结构,不能解决复杂的多关系知识图谱。因此文中针对此种现象,提出了TCKGE——针对于学习多关系知识图谱中复杂的语义信息。TCKGE能够有效的捕获知识图谱中丰富的语义信息,其利用了…

论文阅读_DALLE-2的unCLIP模型

论文信息 name_en: Hierarchical Text-Conditional Image Generation with CLIP Latents name_ch: 利用CLIP的层次化文本条件图像生成 paper_addr: http://arxiv.org/abs/2204.06125 doi: 10.48550/arXiv.2204.06125 date_read: 2023-02-12 date_publish: 2022-04-12 tags: [‘…

【CSS】CSS 层叠样式表 ③ ( CSS 引入方式 - 外链式 | CSS 样式规则 )

文章目录一、CSS 引入方式 - 外链式1、外链式 CSS 语法2、CSS 代码3、HTML 代码二、CSS 样式规则一、CSS 引入方式 - 外链式 1、外链式 CSS 语法 将 CSS 代码 写在外部的 xxx.css 外部样式表文件 中 , 然后 在 HTML 的 head 标签 中 , 使用 <head> <link rel"sty…

JavaSE学习笔记day15

零、 复习昨日 HashSet 不允许重复元素,无序 HashSet去重原理: 先比较hashcode,如果hashcode不一致,直接存储如果hashcode值一样,再比较equals如果equals值为true,则认为完全一样,不存储即去重否则存储 如果使用的是空参构造创建出的TreeSet集合,那么它底层使用的就是自然排序,…

_improve-1

类型及检测方式 1. JS内置类型 JavaScript 的数据类型有下图所示 其中&#xff0c;前 7 种类型为基础类型&#xff0c;最后 1 种&#xff08;Object&#xff09;为引用类型&#xff0c;也是你需要重点关注的&#xff0c;因为它在日常工作中是使用得最频繁&#xff0c;也是需要…