nginx 的意义及作用,宏观理解

nginx 是轻量级的Web服务器。由于配置简单,容量小被应用于各个项目。

在java企业级开发中,常常作为前端静态资源的代理的服务器,如果配置的好可支持5W并发量。

作用:

  1. 反向代理
  2. 正向代理
  3. 负载均衡
  4. HTTP服务器(包含动静分离)

区别及意义:

正向代理,代理介于 client 与 service 之间, client 通过proxy 去访问service 返回资源 (代理客户端)

想象你挂VPN的代理并设置一些东西就可以通过某台机器FQ了。

反响代理:proxyService代理service,client 不知道service 的存在,将访问service 全全交给了proxyService (代理原始服务器)

理解:nginx代理服务器这样你就不用去编写任何配置,交给nginx 去配置就好了,nginx收到你的请求会自动根据配置转发到对应的服务器去。

何为均衡负载:(多用于服务器集群)其实和ZUUL比较像

均衡负载表示通过代理服务器统一去管理其他服务器,然后client 访问代理服务器(proxyService),proxyService去均衡的分发请给个其他服务器,保证每个服务器得到均衡的并发。

nginx 通过反向代理实现均衡负载。

实现均衡负载的处理方式:

  • round-robin:轮询。以轮询方式将请求分配到不同服务器上
  • least-connected:最少连接数。将下一个请求分配到连接数最少的那台服务器上
  • ip-hash :基于客户端的IP地址。散列函数被用于确定下一个请求分配到哪台服务器上

流程理解:

例:假设访问springBoot 启动的1个服务 Ip:192.168.255.255:10010 使用niginx代理后项目的请求流程理解:

1、浏览器发起请求 如:www.wuyou.com 浏览器就会进行域名解析,转换成IP+端口号进行访问,所以浏览器将找到hosts 文件中的对应关系,如果找不到就到中央服务器那找(肯定能找到照只要你的网站做了备案并通过),所以你只需要增加一个该文件的配置即可:192.168.255.255 www.wuyou.com

2、这样当你访问 www.wuyou.com 该域名自动会被解析成192.168.255.255 该IP

3、在HTTP协议中,默认端口号是80 端口,所以你访问域名时IP:port 是192.168.255.255:80 这与我们实际想访问的服务器端口不匹配,这时候就需要用到nginx 了

4、在nginx 中修改conf 配置文件,监听80端口并配置类似路由的配置即可实现请求的转发。见以下配置:

server {
        listen       80; #监听的端口号
        server_name  www.wuyou.com; #域名
 
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
            proxy_pass http://192.168.255.255:10010; #转发的地址
            proxy_connect_timeout 600; #超时
            proxy_read_timeout 600;
        }
    }

以上就是整个执行流程。