Nginx简单认识

Posted 蚊蚊蚊蚊蚊170624

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx简单认识相关的知识,希望对你有一定的参考价值。

写在前面:

  最近一直在学习,这几天了解了下nginx,虽然看了些资料,斌哥也讲解了一下,但是貌似缺少了实践,就显得对其认识的不那么深刻。这里也还是简单的记录下把。

  

  什么是Nginx?

  Nginx (engine x) 是一款轻量级的Web服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,按照个人理解就是用来转发请求的,是个中间商。

  什么是反向代理?

  Nginx既然是反向代理服务器,那什么是反向代理?要知道什么是反向,就要先明白是什么正向?

  正向代理客户端非常明确想要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,并不知道来自哪个客户端。比如我们在查资料的时候,需要访问国外的网站,这个时候会发现通过我们的浏览器是访问不了的,这个时候就需要使用一个能访问国外网站的代理服务器来进行访问。我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将数据返回给我们。

  反向代理客户端的请求来源是明确的,但是请求具体由哪个服务器去处理就不明确了。比如现在一个网站有超大量的访问,如果只是单单的一个服务器,早就宕机了,所以,使用反向代理服务器,就可以按照一定的规则将请求分发到不同的服务器进行处理。

 

  两者之间的区别:

  

  位置不同:正向代理,架设在客户机与主机之间;反向代理,架设在服务器端。

  代理对象不同:正向代理,代理客户端,服务端不知道实际发起请求的客户端;反向代理,代理服务端,客户端不知道实际提供服务的服务端。

  用途不同:正向代理,为在防火墙内的局域网客户端提供访问Internet的途径;反向代理,将防火墙后面的服务器提供给Internet访问。

  安全性不同:正向代理运行客户端通过它访问任意网站并且隐藏客户端自身,因此必须采取安全措施以确保仅为授权的客户端提供服务;反向代理对外都是透明的,访问者并不知道自己访问的是哪一个代理。

  这些都是摘抄来自斌哥做的ppt中的,可能要自己总结,就写不出来了,哈哈哈

  什么是负载均衡?

  Nginx反向代理服务器就收到的请求数量,即负载量。请求数据按照一定规则进行分发到不同的服务器处理的规则,叫做均衡规则。将接收的请求按照规则分发的过程,称为负载均衡。

 

  如何使用?

  下面简单来使用下Nginx

  首先是下载http://nginx.org/en/download.html,下载windows-1.15.5的这个

  下载之后进行解压,然后双击nginx.exe进行启动。这个时候窗口会一闪而过,但是并不是启动失败了。打开你的任务管理器,查看进程,会发现有两个nginx.exe,则启动成功。两个进程一个是守护进程,一个工作进程。

  接着打开浏览器,输入http://localhost,回车,会看到如下页面

  相关命令:

  启动nginx: start nginx

  重启nginx:nginx -s reload

  关闭nginx: nginx -s stop

  查看配置文件是否有问题:nginx -t


  下面简单的配置下,看nginx是如何分发的。

  我们打开nginx的配置文件nginx.conf:

upstream localhost{  #配置要分发的服务器
        server localhost:8000;
        server localhost:8080;
    }
    
    server {
        listen       80; 
        server_name  localhost;

        location / {  #配置匹配的路径,/表示所有的请求路径都到这里
            proxy_pass http://localhost;  #proxy_pass表示代理路径,即转发的路径,与上面设置分发的服务器的名字相同
           
        }

  将配置文件更改为这个样子,其他地方的配置,这里省略了,只是简单的配置了下。

  下面,我们启动两个同名的web项目,都为spas,并设置两个项目启动的端口不一致,一个为8000,一个为8080,与nginx.conf配置文件中设置的分发的服务器的端口一致。然后打开浏览器,我们输入http://localhost/spas,回车,发现页面是访问http://localhost:8000/spas项目的页面,再多次刷新回车,发现显示的页面又是访问http://localhost:8080/spas项目的页面。

   到这里就达到了我们想要的效果了,因为我们配置分发了两个服务器,所以按照匹配路径,多次刷新,会出现不同的页面。

  好啦,对于Nginx也有了简单的了解与认识了,之后在项目中如果有更好的实践再去好好学习研究吧~~~

 

 

   

 

 

参考资料:(好几个都是斌哥ppt上整理的参考链接,看的时候也没认真仔细去看,总觉得这些对于我这个阶段来说还是有点高深的haha~)

  https://blog.csdn.net/tsummerb/article/details/79248015------Nginx详解(正向代理、反向代理、负载均衡原理)

  https://www.cnblogs.com/Lonelydancer/p/6219567.html-------浅谈Nginx负载均衡和F5的区别

  https://blog.csdn.net/ZHBR_F1/article/details/72667451-------Nginx的配置和使用

  https://www.cnblogs.com/qdhxhz/p/8910174.html------nginx入门教程

  https://www.cnblogs.com/ChoviWu/p/9004725.html------nginx配置负载均衡

 

 

以上是关于Nginx简单认识的主要内容,如果未能解决你的问题,请参考以下文章

2W 字你全面认识 Nginx

Nginx 认识Nginx并进行安装

从JavaWeb的角度认识Nginx

nginx.conf 忽略了 nginx-ingress 配置映射片段

为啥这段代码会泄露? (简单的代码片段)

将 nginx rtmp 片段发送到 WebRTC