文章目录
一、什么是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端游的时候都要开一个加速器,不然就没有办法快乐的游戏!!
这是因为吃鸡是访问的外网,而我们大家访问外网的速度是非常慢的,我们学编程的小伙伴应该深有体会了,所以我们大家使用的加速器就可以 “提升我们访问外网的速度”。然而事实并非如此,我们的加速器,其实也可以叫做VPN。加速器实际上是帮我们直接或者间接的向 原服务器发送请求获取返回数据,对于这个 原服务器 而言他只知道有一个服务器访问了自己,并不知道你访问了他。
正向代理的过程,隐藏了真实的客户端。客户端请求的服务都被 代理服务器 代替来请求。
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中
连接成功!
(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做反向代理,这样可以极大的缓解服务器的鸭梨!
以上是个人见解,可能会有问题和错误,希望小伙伴们可以指正😘😘。
树苗如果因为怕痛而拒绝修剪,那就永远不会成材。