利用Nginx负载均衡、动静分离特性部署前后端项目

news2024/12/28 19:15:33

目录

一、Nginx简介

1.1 Nginx是什么?

1.2 Nginx的作用

二、Nginx负载均衡

2.1 Nginx安装

2.2 Nginx搭载负载均衡

2.2.1 tomcat负载均衡  

 2.2.2 服务器的集群

三、前后端分离项目

3.1 前端项目导出

3.2 前端项目Linux部署


一、Nginx简介

1.1 Nginx是什么?

        Nginx(发音为"engine-x")是一款高性能的开源Web服务器和反向代理服务器。它由Igor Sysoev于2004年创建,并于2008年首次发布。Nginx的设计目标是提供高性能、可靠性和可扩展性,以应对高负载的Web应用程序和流量。

1.2 Nginx的作用

  1. Web服务器:Nginx可以提供静态文件服务,如HTML、CSS、JavaScript和图像等。它能够高效地处理并发请求,提供快速的文件传输速度,并通过缓存和压缩等技术提高性能。

  2. 反向代理:Nginx可以作为反向代理服务器,将客户端请求转发给后端服务器,并将响应返回给客户端。通过反向代理,Nginx可以实现负载均衡、高可用性和故障转移,提高应用程序的性能和可靠性。

  3. 负载均衡:Nginx支持负载均衡功能,可以将请求分发给多个后端服务器,以平衡负载并提高系统的可扩展性和稳定性。它支持多种负载均衡算法,如轮询、IP哈希和最少连接等。

  4. 反向缓存:Nginx可以作为反向缓存服务器,缓存动态内容的响应,以减轻后端服务器的负载并提高响应速度。通过缓存,Nginx可以减少对后端服务器的请求,提高系统的性能和可扩展性。

  5. SSL/TLS终端:Nginx可以作为SSL/TLS终端,处理加密和解密HTTPS请求。它可以提供安全的通信通道,保护数据的机密性和完整性。

        总结一下,Nginx作为Web服务器和反向代理服务器,可以提供静态文件服务、反向代理、负载均衡、反向缓存和SSL/TLS终端等功能。它能够提高应用程序的性能、可靠性和安全性,适用于处理高负载的Web应用程序和流量。

二、Nginx负载均衡

2.1 Nginx安装

1、安装4个依赖

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

2、解压安装包

tar -xvf nginx-1.13.7.tar.gz

3、进入安装包目录,安装nginx

cd nginx-1.13.7


编译,执行配置: 考虑到后续安装ssl证书 添加两个模块

./configure --with-http_stub_status_module --with-http_ssl_module

安装 

make && make install

4、启动Nginx
进入 /usr/local/nginx/sbin 目录下启动:

 如下nginx文件夹有四个文件,启动nginx的在sbin文件夹下:

# 启动
./nginx

# 重启
./nginx -s reload

# 关闭
./nginx -s stop

# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf

1、下载lsof指令
2、lsof指令用于查看是否开启nginx

1、yum install lsof
2、lsof -i:80

5、开放端口

开启Nginx后还是不能直接访问的,需要设置防火墙开放 80 端口

 firewall-cmd --zone=public --add-port=80/tcp --permanent
 firewall-cmd --reload && firewall-cmd --list-port

访问示例: 

2.2 Nginx搭载负载均衡

2.2.1 tomcat负载均衡  

1、准备2个tomcat

通过一下命令备份一个新的tomcat

cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/

2、修改的tomcat配置如下

2.1 进入第二个tomcat的conf路径

cd /javaxl/software/apache-tomcat-8.5.20_8081/conf/

2.2 进入vim server.xml文件

将server.xml的内容修改如下:
1. HTTP端口,默认8080,如下改为8081
2.远程停服务端口,默认8005,如下改为8006
3.AJP端口,默认8009,如下改,8010

 2.2.2 服务器的集群

1、进入nginx的conf目录下修改nginx.conf文件

命令:

vim nginx.conf

2、方法二: 

完整示例:

    
        #服务器的集群
    upstream  tomcat_list {  #服务器集群名字
        server    127.0.0.1:8080  weight=1;   #服务器1   weight是权重的意思,权重越大,分配的概率越大。
        server    127.0.0.1:8081  weight=2;   #服务器2   weight是权重的意思,权重越大,分配的概率越大。
    } 
    
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            proxy_pass   http://tomcat_list; #服务器集群名字
            index  index.html index.htm;
        }

最后重启nginx和tomcat8080端口和tomcat8081端口:

./nginx -s reload

示例:

三、前后端分离项目

3.1 前端项目导出

1、项目config文件夹 --> index.js 添加如图配置

2、项目build文件夹 --> utils.js 添加如图配置

3、在前端项目根目录下运行cmd输入 npm run build 指令 进行导包

导包成功:

4、导出成功后项目会都出一个dist文件

5、点击此文件可查看导出的静态项目资源,点击静态资源也可访问动态数据哦

3.2 前端项目Linux部署

1、上传前端项目

将之前导出的前端项目的dist文件解压成压缩包,上传到nginx上

先在/usr/local/下创建一个文件夹名为myssm

2、解压前端项目

#下载解压zip的插件   
yum install -y unzip
#解压命令 
unzip 解压文件名

 

3、修改Nginx配置(动静分离)

更改Nginx配置文件用来导航路由到前端界面,并且重新配置服务器代理用来区分后端请求。

        location / {
            root /usr/local/myssm/dist;
        }
        location  ^~/api/ {
	        	#^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除api
	        	proxy_pass http://tomcat_list/;
	      }

4、重启 Nginx 运行服务器

进入到/usr/local/nginx/sbin中重启Nginx之后,再访问服务器

5、配置域名与ip的映射关系

 在本地:C:\Windows\System32\drivers\etc\hosts中配置映射关系

效果演示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161764.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外接移动硬盘/U盘无法读写解决方案

一:问题描述 将常用的便携移动硬盘/U盘插入终端,终端无法读取移动硬盘/U盘,并出现“无法访问 介质受写入保护”或“拒绝访问”等报错信息。 二:解决方案 方案一:磁盘设置只读属性,清除磁盘只读属性。 操作…

UL1363跨境电商排插测试报告要提供哪些资料

排插UL1363测试项目及测试方法的介绍 1、漏电流测试 TVSS的样品应与标称电压连接。该测量表的输入阻抗等于1500ohm电阻的阻抗,该电阻旁接一个0.15μF的电容。该电阻放置在接地电源导体和可触及的金属零件之间或裹在外壳上的金属铜箔和插入插座的插头的接地接线柱之间…

open mp笔记

Open mp在cpu上并行计算, 统一内存访问(OPEN MP pthreads),同一块内存共享多个CPU 非统一内存访问(MPI),每个CPU都有自己对应的内存,通过blus interconnect链接起来,cpu不能直接访问他们的内存,…

双11消费遇冷?如何让消费回归心智原点

近一年来,小红书话题「重新养育自己」引热议。直面成长缺憾,不少人探寻解决方案,即像对待新生命般,不论是衣食住行还是心灵,重新关照自己。 借此,本期千瓜将锁定小红书热门话题背后的消费观转变&#xff0…

手写数字识别--神经网络实验

实验源码自取: 神经网络实验报告源码.zip - 蓝奏云 上深度学习的课程,老师布置了一个经典的实验报告,我做了好久才搞懂,所以把实验报告放到CSDN保存,自己忘了方便查阅,也为其他人提供借鉴 由于本人是小白…

2023年11月1日,Google全新域名来袭:.ing域名现已问世!

2023年11月1日(Oct31,2023美国与中国时差)Google宣布,正式推出.ing域名,这是一种新的顶级域名,旨在为用户提供更多的选择和创意。.ing域名是由Google和国际互联网名称与数字地址分配机构(ICANN)合作开发的,…

安全与HTTP协议:为何明文传输数据成为争议焦点?

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 ⭐ 专栏简介 📘 文章引言 一、H…

自动驾驶算法(二):A*算法讲解与代码实现

目录 1 A* 算法提出的动机 2 A*算法代码详解 3 A*算法完整代码 1 A* 算法提出的动机 减少收录的珊格树目,增加搜索速度。在Dijkstra算法中,我们考虑收录栅格时我们考虑的是到起点的距离,我们会考虑收录距离起点较近的珊格进行收录。在A*算法…

关于打包css找不到报错

背景&#xff1a;最近公司产品升级为v3项目&#xff0c;打包总是报css缺失 问题&#xff1a;报错提示如下&#xff0c;找不到css 出现原因分析&#xff1a;由于项目比较老&#xff0c;很多人写的&#xff0c;代码风格不统一导致的&#xff0c;比如父组件A使用<style><…

日志数据库写入数据频繁内存占用越来越大

一直写数据&#xff0c;内存越来越高。查看内存占用命令&#xff1a;htop 解决方式&#xff1a;日志数据库的模式改为【简单】 完整会把你的所有操作记录早日志文件&#xff0c;简单就不会

虾总管:16年磨一剑,引领餐饮新现象级潮流

在繁忙的都市生活中&#xff0c;我们常常追求一种简单而美好的生活。美食&#xff0c;则是让我们忘却烦恼&#xff0c;回归初心的一种方式。在河北承德&#xff0c;就有这样一家美食品牌虾总管&#xff0c;用一份鸭虾锅带给无数人美好和喜悦。 16年始终如一&#xff0c;初心不改…

teambition迁移云效

由于TB(行云)停止运营了&#xff0c;可惜了&#xff0c;非常好用的一个工具&#xff0c;项目管理&#xff0c;代码管理&#xff0c;自动化构建等&#xff0c;都支持。现需要切换到云效(https://codeup.aliyun.com/)。这个工作量确实挺大的&#xff0c;像我有N个公司*N个项目的&…

win10 vs2015 构建xp适配

整理中&#xff1a; LIB_CPPFLAGS-D"_WIN32_WINNT0x502"

跨模块边界分配和释放内存

我想&#xff0c;有一条编程铁律已经深深的刻入到你的头脑中了&#xff1a;使用成套的函数来分配和释放内存&#xff0c;例如&#xff0c;如果使用 LocalAlloc 分配内存&#xff0c;则应该使用 LocalFree&#xff0c;类似的例子还有&#xff1a;GlobalAlloc 对应 GlobalFree&am…

手把手教你使用Vue2.0实现动态路由展示

文章目录 VUE2相关组件版本原始菜单数据数据库数据树形数据 前端项目配置静态路由配置路由守卫左侧路由回显代码 使用Vue2实现动态路由展示 思路&#xff1a; 后端返回树形数据根据数据渲染左侧菜单根据数据组装路由数据 注意&#xff1a;本文主要目的讲解是一种思路&#xff0…

47GB水经微图从入门到精通视频教程

本视频教程共47GB&#xff0c;为了方便大家观看&#xff0c;同时录制了横版视频教程和竖版视频教程。 本视频教程的内容主要包括快速入门、地图标注、影像下载、高程下载和矢量下载几部分。 本文将列出所有视频教程所有内容。 快速入门&#xff08;23.1GB&#xff09; 如何…

串口实用解说

我们学习单片机&#xff0c;首先接触的可能是点灯&#xff08;GPIO&#xff09;&#xff0c;再次就是串口&#xff08;UART&#xff09;。 串口是常用的一种通信接口&#xff0c;也是学嵌入式必备掌握的一项知识&#xff0c;但我发现有很多小伙伴只知道用串口输出或者打印一些数…

《windows核心编程》第4章 进程

一、进程基本概念 1、进程&#xff1a;一个进程就是一个正在运行的程序&#xff0c;一个程序可以产生多个进程。进程包含下面两个东西 ● 进程内核对象&#xff1a;一个内核对象被系统用来管理某个进程&#xff0c;内核对象就是代表这个进程。这个内核对象中&#xff0c;还包…

CTS分析思路

目录 原理简介&#xff1a; Cts测试原理&#xff1a; CTS报告与日志目录 CTS报告目录如下​编辑 log查看 举例 原理简介&#xff1a; Cts环境搭建和测试方法&#xff0c;大家可以自行查询网上资料。 Cts测试原理&#xff1a; 输入命令后&#xff0c;会安装一系列的测试…

短视频账号矩阵系统/剪辑/矩阵/无人直播/文案引流爆款

一、 短视频账号矩阵源码开发包含哪几方面&#xff1f; 1. 界面设计&#xff1a;需要根据用户需求&#xff0c;设计出优美简洁的UI界面&#xff0c;使用户可以方便快捷地管理自己的短视频账号。 2. 数据存储&#xff1a;需要将用户的账号信息、数据统计等信息存储在数据库中&a…