什么是Nginx?我们该怎末去学习Nginx?

举报
木字楠 发表于 2022/12/07 13:58:08 2022/12/07
【摘要】 自己在学习nginx基础部分时的一些笔记

木字楠-header.gif


🎶 文章简介:什么是Nginx?我们该怎末去学习Nginx?

💡 创作目的:自己在学习nginx基础部分时的一些笔记

☀️ 今日天气:2022-11-24 天气转晴了 好诶!

📝 每日一言:不被定义,你可以是任何的样子!


🦦一、什么是Nginx?

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

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名.

Nginx是一款轻量级的Web 服务器/反向代理服务器及**电子邮件(IMAP/POP3)**代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。


🦈二、什么是 正向代理 Or 反向代理?

在这里插入图片描述

🐬1、什么是正向代理?

所谓的正向代理就是介于 客户端原始服务器 之间的一个 服务器为了从原始服务器取得内容,客户端向 代理服务器 发送一个请求并且指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端,客户端才能使用 正向代理。(下图中红框圈中的服务器就是正向代理的服务器)

image.png

平时我们大家在玩吃鸡PC端游的时候都要开一个加速器,不然就没有办法快乐的游戏!!
在这里插入图片描述
这是因为吃鸡是访问的外网,而我们大家访问外网的速度是非常慢的,我们学编程的小伙伴应该深有体会了,所以我们大家使用的加速器就可以 “提升我们访问外网的速度”。然而事实并非如此,我们的加速器,其实也可以叫做VPN。加速器实际上是帮我们直接或者间接的向 原服务器发送请求获取返回数据,对于这个 原服务器 而言他只知道有一个服务器访问了自己,并不知道你访问了他。

image.png

正向代理的过程,隐藏了真实的客户端。客户端请求的服务都被 代理服务器 代替来请求。

🦭2、什么是反向代理?

反向代理服务器 位于 用户目标服务器 之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

image.png

我们在访问B站时,我们只需要输入B站的网址就可以进入到B站。这是为什么?是因为B站只设置了一台服务器吗?毋庸置疑,B站每天都有海量的用户进行访问,肯定不是一台服务器可以顶得住的。实际上B站也使用了代理服务器,我们只用访问代理服务器的域名就可以被分配到目标服务器上,从而实现访问。

image.png
比如下图中,有三台目标服务器! 一台在北京,是一台1024G的服务器,还有一台在上海,是一台514G的,最后一台在深圳,是一台257G的服务器!当我们在客户端输入B站的网址进行访问时,代理服务器就会将我们的请求分配到一台目标服务器,这样我们就可以进入到B站。这样的服务器就是代理服务器,Nginx就是这样的可以实现这样的效果。

但是你以为Nginx的用处仅仅是这样吗?那就大错特错了,nginx还可以提供负载均衡的功能,我们可以根据每台服务器的性能来进行服务量的分配,比如北京那太服务器是1024G的,上海的服务器是514G的,而深圳的服务器是257G的。那么,假如在同一时间有六台客户机发起请求,那麽我们可以多给内存比较大的服务器(北京)多一些请求,而内存小一点的少一些请求(深圳),这样可以实现最好的效果!当然,nginx的用处并不仅仅局限于此!

image.png

🐳3、小总结

短小精悍的一句话结束战斗 正向代理隐藏真实客户端,反向代理隐藏真实服务端!!

🐋三、Nginx 的安装 和 使用

image.png

nginx的官网: http://nginx.org/en/download.html(nginx官网的下载速度是非常鸡肋的,所以我给大家提供好了百度网盘)

我将nginx的windows和linux安装包存入来了某盘供大家下载使用:
链接:https://pan.baidu.com/s/1FBHFCbvyArHRTPif0ERgkA 提取码:lay4
(由于nginx本身比较小就只有1MB左右,某盘的限速就微乎其微了)
在这里插入图片描述

🐟1、windows 下的安装 和 使用

windows下的安装是非常简单的,可以说是不用安装。
我们只需要将下载好的压缩包进行解压(最好不要放在C盘中,除此之外存放的路径中不能含有中文,否则会启动失败),压缩之后就可以使用了!!

image.png

我们进入conf目录查看nginx的配置文件:

image.png

在这里我们可以看到nginx已经配置了一个81端口的服务并且指定了页面,我们可以将nginx启动起来看看是什么样子的!

image.png

启动方式:

🐠1-1、双击 nginx.exe 启动

这样可以启动,但是双击之后会出现命令窗口一闪而过,效果并不好!
在这里插入图片描述

🐡1-2、在 cmd 中开启

首先打开nginx文件夹目录,在导航栏出点击(使整个路径都被选中),接下来输入cmd

image.png

image.png
这样就可以快速在命令窗口中定位到文件夹了(打开的时候cmd就已经定位在nginx的目录下了)

image.png

我们开启nginx服务!
我们在cmd中输入nginx.exe (可以只输入开头两个字母,使用Tab键补全)

image.png

服务启动过程

当光标不停闪烁就说明启动成功了!
我们在地址栏中输入localhost:81

image.png

启动成功!

🦐1-3、nginx的关闭

nginx的关闭必须重新开启一个新的cmd命令窗口来进行关闭,将开启nginx的cmd关闭并不能关闭nginx服务。 重新在nginx的目录下开启一个cmd窗口,输入 nginx.exe -s stop 命令来关闭nginx服务!

image.png
在这里插入图片描述
关闭成功!

🦑2、Linux下的安装 和 使用

关于linux的上 nginx 的安装,如果有服务器的话可以直接使用XShell进行连接没有服务器的话可以在 Vm 上安装一台虚拟机,(因为我个人比较喜欢使用XShell,所以我使用XShell连接我的本地Vm虚拟机)

首先启动Vm虚拟机,输入ip addr获取虚拟机的临时ip

image.png

这个就是我们虚拟机的临时ip,我们将其连接到XShell中

image.png

image.png

image.png

连接成功!

(1)./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC(C Complie)
或GCC(GNU Compile Collections),并不是需要CC或GCC,它是个shell脚本。使用它之后,
会生成一个makefile文件。

(2)make是用来编译的,它从Makefile中读取指令,然后编译。它需要用到Makefile文件;

(3)make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

输入命令 whereis nginx 检查虚拟机中是否已经安装nginx,当没有输出时就说明没有nginx。

image.png

将我们下载好的安装包通过xftp传输进我们的虚拟机!
在这里插入图片描述
当传输完成之后我们就可以查看到nginx的安装包了

image.png

接下来解压安装包 tar -zxvf nginx-1.20.0.tar.gz ,

image.png

进入到nginx-1.20.0 中 我们就会发现,他的目录结构和weindows中的文件目录基本上是相同的,这个绿色的configure,我们输入 ./configure 命令执行它,他会帮我们进行一些配置!

image.png

image.png
接下来输入make 命令 进行编译,
在这里插入图片描述
接下来查看nginx是否安装成功,以及安装之后的位置在哪里。

image.png

image.png
我们的nginx已经安装成功了!!!!

解下了我们来查看一下nginx的配置文件。

image.png
我们可以发现这次nginx的配置文件开放的端口是80端口

image.png
接下来我们进入到sbin目录下启动nginx,并且去浏览器进行访问,看是否可以访问到!
因为配置文件中开放的端口为80,首先我们要去查看一下防火墙对于80端口是否开启(如果使用的是云服务器,还需要去安全组中开放80端口)
在这里插入图片描述

至于nginx的关闭是和windows是一样的!
在这里插入图片描述

🐙3、注意

还有一个重要的命令是 ./nginx -s reload ,每次修改完配置文件之后要使用该命令进行重新加载!

🦞总结

反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理,这样可以极大的缓解服务器的鸭梨!
以上是个人见解,可能会有问题和错误,希望小伙伴们可以指正😘😘。

不被定义,你可以是任何的样子。

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。