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

2022-11-15 16:43:45 浏览数 (1)

文章目录

  • 一、什么是Nginx?
  • 二、什么是 正向代理 Or 反向代理?
    • 1、什么是正向代理?
    • 2、什么是反向代理?
    • 3、小总结
    • 三、Nginx 的安装 和 使用
      • 1、windows 下的安装 和 使用
        • 1-1、双击 nginx.exe 启动
        • 1-2、在 cmd 中开启
        • 1-3、nginx的关闭
      • 2、Linux下的安装 和 使用
      • 3、注意
  • 总结

一、什么是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、什么是正向代理?

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

平时我们大家在玩吃鸡PC端游的时候都要开一个加速器,不然就没有办法快乐的游戏!!

这是因为吃鸡是访问的外网,而我们大家访问外网的速度是非常慢的,我们学编程的小伙伴应该深有体会了,所以我们大家使用的加速器就可以 “提升我们访问外网的速度”。然而事实并非如此,我们的加速器,其实也可以叫做V**。加速器实际上是帮我们直接或者间接的向 原服务器发送请求获取返回数据,对于这个 原服务器 而言他只知道有一个服务器访问了自己,并不知道你访问了他。

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

2、什么是反向代理?

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

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

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

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

3、小总结

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

三、Nginx 的安装 和 使用

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

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

1、windows 下的安装 和 使用

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

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

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

启动方式:

1-1、双击 nginx.exe 启动

这样可以启动,但是双击之后会出现命令窗口一闪而过,效果并不好!

1-2、在 cmd 中开启

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

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

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

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

启动成功!

1-3、nginx的关闭

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

关闭成功!

2、Linux下的安装 和 使用

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

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

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

连接成功!

代码语言:javascript复制
(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。

将我们下载好的安装包通过xftp传输进我们的虚拟机!

当传输完成之后我们就可以查看到nginx的安装包了

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

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

接下来输入make 命令 进行编译,

接下来查看nginx是否安装成功,以及安装之后的位置在哪里。

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

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

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

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

至于nginx的关闭是和windows是一样的!

3、注意

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

总结

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

0 人点赞