Nginx

前端工程可以部署在Nginx服务器上。

一、反向代理

nginx 反向代理,就是将前端发送的动态请求由 nginx 转发到后端服务器。

那为什么不直接通过浏览器直接请求后台服务端,需要通过nginx反向代理呢?

1. nginx 反向代理的好处

  • 提高访问速度

    因为nginx本身可以进行缓存,如果访问的同一接口,并且做了数据缓存,nginx就直接可把数据返回,不需要真正地访问服务端,从而提高访问速度。

  • 进行负载均衡

    所谓负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器。

  • 保证后端服务安全

    因为一般后台服务地址不会暴露,所以使用浏览器不能直接访问,可以把nginx作为请求访问的入口,请求到达nginx后转发到具体的服务中,从而保证后端服务的安全。
    在这里插入图片描述

2. nginx 反向代理的配置方式

server{
    listen 80;
    server_name localhost;
    
    location /api/{
        proxy_pass http://localhost:8080/admin/; #反向代理
        #proxy_pass:该指令是用来设置代理服务器的地址,可以是主机名称,IP地址加端口号等形式。
    }
}

在这里插入图片描述

如上代码的含义是:监听80端口号, 然后当我们访问 http://localhost:80/api/…/…这样的接口的时候,它会通过 location /api/ {} 这样的反向代理到 http://localhost:8080/admin/上来。

二、Nginx 负载均衡

当如果服务以集群的方式进行部署时,那nginx在转发请求到服务器时就需要做相应的负载均衡。其实,负载均衡从本质上来说也是基于反向代理来实现的,最终都是转发请求。

1. nginx 负载均衡的配置方式

     #upstream:如果代理服务器是一组服务器的话,我们可以使用upstream指令配置后端服务器组。upstream后面的名称可自定义,但要上下保持一致。
upstream webservers{
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}
server{
    listen 80;
    server_name localhost;
    
    location /api/{
        proxy_pass http://webservers/admin;#负载均衡
    }
}

如上代码的含义是:监听80端口号, 然后当我们访问 http://localhost:80/api/…/…这样的接口的时候,它会通过 location /api/ {} 这样的反向代理到 http://webservers/admin,根据webservers名称找到一组服务器,根据设置的负载均衡策略(默认是轮询)转发到具体的服务器。

2. nginx 负载均衡策略

名称 说明
轮询 默认方式
weight 权重方式,默认为1,权重越高,被分配的客户端请求就越多
ip_hash 依据ip分配方式,这样每个访客可以固定访问一个后端服务
least_conn 依据最少连接方式,把请求优先分配给连接数少的后端服务
url_hash 依据url分配方式,这样相同的url会被分配到同一个后端服务
fair 依据响应时间方式,响应时间短的服务将会被优先分配

具体配置方式:

轮询:

upstream webservers{
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

weight:

upstream webservers{
    server 192.168.100.128:8080 weight=90;
    server 192.168.100.129:8080 weight=10;
}

ip_hash:

upstream webservers{
    ip_hash;
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

least_conn:

upstream webservers{
    least_conn;
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

url_hash:

upstream webservers{
    hash &request_uri;
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

fair:

upstream webservers{
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
    fair;
}

相关推荐

  1. <span style='color:red;'>Nginx</span>

    Nginx

    2024-01-26 15:02:04      53 阅读
  2. <span style='color:red;'>nginx</span>

    nginx

    2024-01-26 15:02:04      40 阅读
  3. Nginx

    2024-01-26 15:02:04       47 阅读
  4. <span style='color:red;'>Nginx</span>

    Nginx

    2024-01-26 15:02:04      59 阅读
  5. <span style='color:red;'>Nginx</span>

    Nginx

    2024-01-26 15:02:04      36 阅读
  6. <span style='color:red;'>Nginx</span>

    Nginx

    2024-01-26 15:02:04      50 阅读
  7. <span style='color:red;'>nginx</span>

    nginx

    2024-01-26 15:02:04      54 阅读
  8. Nginx

    2024-01-26 15:02:04       55 阅读
  9. <span style='color:red;'>Nginx</span>

    Nginx

    2024-01-26 15:02:04      47 阅读
  10. <span style='color:red;'>nginx</span>

    nginx

    2024-01-26 15:02:04      36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-26 15:02:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-26 15:02:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-26 15:02:04       82 阅读
  4. Python语言-面向对象

    2024-01-26 15:02:04       91 阅读

热门阅读

  1. lvm详解

    2024-01-26 15:02:04       47 阅读
  2. 04-Seata修改通信端口

    2024-01-26 15:02:04       50 阅读
  3. 提效IntelliJ IDEA插件

    2024-01-26 15:02:04       47 阅读
  4. 第八章 使用 SQL Search - SQL 搜索示例

    2024-01-26 15:02:04       49 阅读
  5. tmux原理及常用指令、快捷键介绍

    2024-01-26 15:02:04       59 阅读
  6. MySQL ORDER BY 实现原理

    2024-01-26 15:02:04       54 阅读
  7. 基础前端知识第一期:DIV 标签

    2024-01-26 15:02:04       54 阅读
  8. 大数据量分页优化,应对PageHelper

    2024-01-26 15:02:04       50 阅读
  9. 常见的前端打包构建工具有哪些

    2024-01-26 15:02:04       50 阅读
  10. 指针与引用的区别

    2024-01-26 15:02:04       53 阅读
  11. 前端同时上传json对象和MultipartFile文件

    2024-01-26 15:02:04       52 阅读
  12. React 表单、处理受控表单组件、非受控组件

    2024-01-26 15:02:04       45 阅读