前后端请求之nginx配置

问题: 前端发送的请求,是如何请求到后端服务器的?

如,前端请求地址:http://loclhost/api/employee/login:

后端相应请求地址:http://loclhost:8080/admin/employee/login


回答: 使用nginx进行反向代理,即将前端发送的动态请求由nginx转发到后端服务器。

nginx代理的好处:

使用nginx进行反向代理的好处:

  • 提高访问速度:nginx可以缓存数据,当请求同样的接口地址时,无需请求真正的后端服务,直接将nginx中缓存的数据响应给前端,从而提高了响应速度。

  • 进行负载均衡:系统上线之后,有可能访问压力较大,后端可能需要部署多台服务器构成服务器集群。此时,nginx可以作为负载均衡器,将前端发过来的大量请求均衡的分配给后端的各个服务器,如下图所示:

  • 保证后端服务安全:在真实企业项目当中,很多后端服务并没有直接暴露给互联网,而是部署在公司内部的局域网内的,并不是对外开放的,因此通过前端并不能直接请求到后端的服务的,所以需要将前端请求发送到nginx服务器,然后nginx服务器走内网发送到后端服务器,如下图所示:

如何实现相关nginx配置:


负载均衡策略:

举例

复制代码
user  root;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    #gzip  on;
	
	map $http_upgrade $connection_upgrade{
		default upgrade;
		'' close;
	}

	upstream webservers{
	  server 127.0.0.1:8080 weight=90 ;
	  #server 127.0.0.1:8088 weight=10 ;
	}

    server {
        listen       80;
        server_name  localhost;
        
        location / {
            root   /home/zxy/Projects/CangQiong/FrontEnd/nginx-1.20.2/html/sky;
            index  index.html index.htm;
        }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # 反向代理,处理管理端发送的请求
        location /api/ {
			proxy_pass   http://localhost:8080/admin/;
            #proxy_pass   http://webservers/admin/;
        }
		
		# 反向代理,处理用户端发送的请求
        location /user/ {
            proxy_pass   http://webservers/user/;
        }

 
    }
}
相关推荐
java_logo2 分钟前
PERL Docker 容器化部署指南
linux·运维·docker·容器·eureka·centos·perl
歪歪10033 分钟前
解决多 Linux 客户端向 Windows 服务端的文件上传、持久化与生命周期管理问题
linux·运维·服务器·开发语言·前端·数据库·windows
自己的九又四分之三站台2 小时前
进程 & 端口排查速查手册
运维
竹君子2 小时前
研发管理知识库(1)DevOps开发模式简介
运维·devops
java_logo7 小时前
HashiCorp Vault 镜像拉取与 Docker 部署全指南
运维·docker·容器
Maple_land8 小时前
Linux复习:冯·诺依曼体系下的计算机本质:存储分级与IO效率的底层逻辑
linux·运维·服务器·c++·centos
linmengmeng_131411 小时前
【Jenkins】Jenkins配置从节点 - Launch Agent
运维·servlet·jenkins
人工智能训练11 小时前
如何在 Ubuntu 22.04 中安装 Docker 引擎和 Linux 版 Docker Desktop 桌面软件
linux·运维·服务器·数据库·ubuntu·docker·ai编程
凤凰战士芭比Q11 小时前
web中间件——Nginx
前端·nginx·中间件