Nginx的介绍、安装与常用命令

news2024/11/14 21:15:54

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

但随着用户访问的越来越多,并发量慢慢增多了,这时候一台服务器已经不能满足我们了,需要我们增加服务器了(如下图所示),但这种扩展方式并不友好,万一用户在登录了服务器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即可

6、nginx.conf文件

nginx.conf文件在conf文件夹下,nginx.conf文件是我们最常用使用的用以配置Nginx的文件,打开文件可以看到Nginx监听的端口号为80,即我们访问80端口后就会被Nginx拦截

7、安装并启动Nginx

Window版:

(1)Window版的Nginx安装非常简单,只要解压即可

(2)解压后进入nginx.exe所在的目录

(3)在地址栏输入cmd并回车

(4)在打开的命令行里输入nginx.exe并回车

(5)在浏览器地址栏里输入localhost:80,并成功跳转页面,表示启动成功

Linux版:

(1)下载Nginx的压缩包并上传到Linux服务器上

(2)用以下命令解压压缩包

tar -zxvf nginx-1.22.1.tar.gz

(3)进入nginx文件夹里

(4)输入以下命令执行configure文件

./configure

效果图:


若报”./configure: error: C compiler cc is not found”的错误,则执行以下命令安装gcc编译器

yum -y install gcc gcc-c++ autoconf automake make

(5)输入以下命令进行编译

make

若报”make: *** 没有规则可以创建“default”需要的目标“build”。 停止”的错误,则执行以下命令安装依赖

yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel

再次执行以下命令

./configure

然后再继续执行make命令即可


(6)输入以下命令安装

make install

(7)启动Nginx

[1]用whereis命令寻找nginx的安装路径

[2]进入nginx运行文件的所在位置

[3]执行nginx运行文件

(8)在浏览器地址栏里输入服务器ip:80,并成功跳转页面,表示启动成功(访问失败的注意下有没有开放防火墙的80端口,如果用的是服务器则还得注意有没有配置安全策略)

8、Nginx的常用命令

./nginx 启动nginx
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件
ps aux | grep nginx 查看nginx进程

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

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

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

相关文章

随机过程及应用

随机过程及应用一、概率论基础1. 三元体定义2. 随机变量及其分布1. 离散随机变量2. 连续型随机变量3. 常见的随机变量和分布1. 离散类2. 连续类4. 二维连续随机变量1. 二维离散2. 二维连续5. 随机变量函数的分布1. 离散(可浅看)2. 一维连续 r.v 函数分布…

JS学习第3天——Web APIs之DOM(什么是DOM,相关API【创建、增删改查、属性操作、事件操作API】)

目录一、Web APIs介绍1、API2、Web API二、DOM1、DOM树2、获取元素3、事件基础4、操作元素属性5、节点(node)操作三、DOM操作总结(创建、增删改查、属性操作、事件操作API)1、创建2、增3、删4、改5、查6、属性操作7、事件操作四、…

[QCustomPlot] QCPBar绘制柱状图并同时显示柱状图的值

前言 博主在使用 qcustomplot 绘制柱状图时,发现网络上的教程。大都忽略了一个重要的点就是。柱状图没有明显显示出当前的值。经过博主寻找后发现在 qcustomplot 论坛中已经有了对应的解决方案。所以记录一下。qcustomplot论坛 代码 void MainWindow::drawBars()…

【N32WB03x SDK使用指南】

【N32WB03x SDK使用指南】1. 简介1.1 产品简介1.2 主要资源1.3 典型应用2. SDK/开发固件文件目录结构2.1 doc2.2 firmware2.3 middleware2.4 utilities2.5 projects Projects3. 项目配置与烧录3.1 编译环境安装3.2 固件支持包安装3.3 编译环境配置3.4 编译与下载3.5 BLE工程目录…

Vue.js基础特性、生命周期及常用指令

目录 一、Vue构造选项 el根标签 data数据对象 methods定义方法 二、生命周期 三、常用指令 一、Vue构造选项 选项说明el唯一根标签,决定Vue实例会管理哪一个DOM节点dataVue实例对应的数据对象methods定义Vue实例的方法,可以在其他地方调用&#x…

慢SQL出现原因、优化、开启慢查询日志

文章目录慢SQL:出现原因:解决方式:开启慢查询日志:慢SQL: 出现原因: (1)数据库表索引设置不合理 (2)SQL语句有问题,需要优化 解决方式: (1&am…

Java 抽象类和接口

文章目录一、抽象类1. 抽象类定义2. 抽象类成员特点二、接口1. 接口概述2. 接口成员特点3. 类和接口的关系4. 抽象类和接口的区别5. 接口案例三、形参和返回值一、抽象类 1. 抽象类定义 在 Java 中,一个没有方法体的方法应该定义为抽象方法,而类中如果…

现在转行做程序员的多吗?

曾经有一名程序员说,他在编写程序时,就像一个发明家在做实验;当他把程序编好可以运行时,他就已经是个发明家了。 程序员作为众多转行人员首选的职业,也是被大众熟知了。但我们需要知道的不仅是它作为一个职业的定义&a…

Spring超级全家桶,学完绝对是惊艳面试官的程度

前言Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。有人亲切的称之为:Spring 全家桶。很多研发人员把spring看作心目中最好的java项目,没有之一。所以这是重点…

AtCoder Beginner Contest 290 G. Edge Elimination(思维题 枚举+贪心)

题目 T(T<100)组样例&#xff0c;每次给出一棵深度为d的k叉树&#xff0c; 其中&#xff0c;第i层深的节点个数为 保证k叉树的所有节点个数tot不超过1e18&#xff0c; 求在k叉树上构建一棵大小恰为x的连通块&#xff0c;所需要断开的最少的树边的条数(x<tot<1e18)…

VScode远程连接服务器-过程试图写入的管道不存在-could not establist connection to【已解决】

问题描述 使用服务器的过程中突然与服务器断连&#xff0c;报错如下&#xff1a;could not establist connection to [20:23:39.487] > ssh: connect to host 10.201.0.131 port 22: Connection timed out > [20:23:39.495] > 过程试图写入的管道不存在。 > [20…

hook与mixin

看完vue3就开始看vue3的源码&#xff0c;表示很懵~ 刚把rollup打包搞完&#xff0c;这不响应式就接着来了&#xff01;&#xff0c;还是写篇直接使用vue3的博客清清脑吧&#xff01; 什么是hook、mixin&#xff1f; mixin: Vue2中多个组件内存在重复JS业务逻辑&#xff0c;使…

JavaScript 闭包【自留】

闭包的概念理解 闭包的定义 ✅ 这里先来看一下闭包的定义&#xff0c;分成两个:在计算机科学中和在JavaScript中。 ✅ 在计算机科学中对闭包的定义(维基百科): 闭包(英语:Closure)&#xff0c;又称词法闭包(Lexical Closure)或函数闭包(function closures);是在支持头等函数…

QT之OpenGL模板测试

QT之OpenGL模板测试1. 概述2. 使用步骤及函数介绍3. Demo4. 参考1. 概述 当片段着色器处理完一个片段之后&#xff0c;模板测试(Stencil Test)会开始执行&#xff0c;和深度测试一样&#xff0c;它可能会丢弃片段。被保留下来的片段会进入深度测试。 一个模板缓冲中&#xff…

Web Spider Babel安装 Ast抽象语法 - 基本使用

文章目录一、资源地址二、遍历2.1 树结构遍历模式2.2 案例三、下载安装四、案例操作总结提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、资源地址 Ast反混淆语法在线网址&#xff1a;https://astexplorer.net Babel官方文档&#xff1a;https://ww…

玩转Linux内核进程调度,这一篇就够(所有的知识点)

一&#xff0c;进程的分类 在 CPU 的角度看进程行为的话&#xff0c;可以分为两类&#xff1a; CPU 消耗型&#xff1a;此类进程就是一直占用 CPU 计算&#xff0c;CPU 利用率很高IO 消耗型&#xff1a;此类进程会涉及到 IO&#xff0c;需要和用户交互&#xff0c;比如键盘输…

性能测试流程

性能测试实战一.资源指标分析1.判断CPU是否瓶颈的方法2.判断内存是否瓶颈的方法3.判断磁盘I/O是否瓶颈的方法4.判断网络带宽是否是瓶颈的方法二.系统指标分析三.性能调优四.性能测试案例1.项目背景2.实施规划&#xff08;1&#xff09;需求分析&#xff08;2&#xff09;测试方…

Faster-Rcnn修改转数据集文件

目录 学习python的一些基础知识 argparser assert关键字 让你秒懂Python 类特殊方法__getitem__ lxml.etree.fromstring的使用 统计一下json文件内的种类 正脸红外光 正脸-混合红外光 正脸-交叉偏振光 正脸-平行偏振光 正脸-紫外光 正脸-棕色光 调用mydataset可视化…

我的 System Verilog 学习记录(5)

、 引言 本文简单介绍 System Verilog 语言的 控制流。 前文链接&#xff1a; 我的 System Verilog 学习记录&#xff08;1&#xff09; 我的 System Verilog 学习记录&#xff08;2&#xff09; 我的 System Verilog 学习记录&#xff08;3&#xff09; 我的 System Ver…

算法课堂-分治算法

分治算法 把一任务分成几部分&#xff08;通常是两部分&#xff09;来完成&#xff08;或只完成一部分&#xff09;&#xff0c;从而实现整个任务的完成 或者你可以把递归理解为分治算法的一部分 因为递归就是把问题分解来解决问题 例子 称假币 最笨的方法&#xff1a;两两称…