Linux系统中前后端分离项目部署指南

目录

一.nginx安装以及字启动

解压nginx

一键安装4个依赖

安装nginx

启动 nginx 服务

开放端口号 并且在外部访问

设置nginx自启动

二.配置负载均衡

1.配置一个tomact

修改端口号

8081端口号

2.配置负载均衡

 ​编辑

三.部署前后端分离项目

1.项目部署后端

​编辑

2.导入sql脚本

​编辑

3.项目部署前端(nginx配置文件)


前言

随着现代软件开发模式的演变,前后端分离架构逐渐成为主流。这种架构模式将前端界面与后端业务逻辑分开,使得两者可以独立开发、测试和部署,大大提高了开发效率和可维护性。而Linux作为一款稳定、高效的操作系统,在部署前后端分离项目时发挥着不可或缺的作用。

在本文中,我们将深入探讨在Linux环境下如何进行前后端分离项目的部署。我们将从环境准备、配置管理、部署流程、性能优化等方面进行详细讲解,并提供一些实用的技巧和最佳实践。无论你是初学者还是有一定经验的开发者,相信本文都能为你提供一些有益的参考和启示。

在阅读本文之前,建议你对前后端分离架构有基本的了解,并熟悉Linux操作系统的基本操作。同时,为了更好地理解和掌握部署过程,建议你跟随文中的步骤进行操作,并在实际操作中不断尝试和优化。

通过本文的学习,你将能够掌握在Linux环境下部署前后端分离项目的方法和技巧,提升你的开发效率和项目质量。让我们一起开始这段探索之旅吧!

一.nginx安装以及字启动

解压nginx

 tar -xvf nginx-1.13.7.tar.gz  -C /usr/local/java/

# 进入安装包目录
cd nginx-1.13.7
# 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块  

一键安装4个依赖

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

安装nginx

 进入安装包目录
cd nginx-1.13.7
 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块 

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

 安装

make && make install 

启动 nginx 服务

安装好的 nginx 服务在 /usr/local/nginx 下:

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

./nginx

开放端口号 并且在外部访问

firewall-cmd --zone=public --add-port=80/tcp --permanent
#跟新防火墙规则
firewall-cmd --reload
#防火墙列表
firewall-cmd --zone=public --list-ports

 

设置nginx自启动

首先修改/etc/rc.d/rc.local文件,添加如下内容:

/usr/local/nginx/sbin/nginx

 

执行以下命令,使/etc/rc.d/rc.local变成可执行文件。

chmod +x /etc/rc.d/rc.local

使用reboot命令重启后,查看nginx是否成功的自启动了 

 

 

二.配置负载均衡

1.配置一个tomact

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

修改端口号

全网最详细的centos中修改tomact的端口号_centos修改java端口-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/lz17267861157/article/details/134151111 就参考小编博客即可

8081端口号

firewall-cmd --zone=public --add-port=8081/tcp --permanent
#跟新防火墙规则
firewall-cmd --reload

2.配置负载均衡

 

然后在分别启动即可

修改nginx.conf文件

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

重新加载配置文件

./nginx  -s reload

三.部署前后端分离项目

1.项目部署后端

2.导入sql脚本

3.项目部署前端(nginx配置文件)

详细看这一篇博客

带你了解Linux中的【Nignx及负载均衡&动静分离】-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/lz17267861157/article/details/134165332


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;#服务器的集群upstream  tomcat_list {  #服务器集群名字server    127.0.0.1:8080  weight=1;   #服务器1   weight是权重的意思,权重越大,分配的概率越大。server    127.0.0.1:8081  weight=1; #服务器2   weight是权重的意思,权重越大,分配的概率越大
}  server {listen       80;            #监听80端口,可以改成其他端口#server_name  localhost;    #当前服务的域名server_name  www.zking.com; #当前服务的域名(虚拟域名也可以)root          /usr/local/mypro/dist;      #将要访问的网站的根目录,nginx节点会自动继承父节点的配置#charset koi8-r;#access_log  logs/host.access.log  main;location / {#该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍 try_files $uri $uri/  /index.html;}location  ^~/api/ {#^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除apiproxy_pass http://tomcat_list/;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

锂电池SOC估计 | PyTorch实现基于Basisformer模型的锂电池SOC估计

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 PyTorch实现基于Basisformer模型的锂电池SOC估计 锂电池SOC估计,全新【Basisformer】时间序列预测 1.采用自适应监督自监督对比学习方法学习时序特征; 2.通过双向交叉注意力机制计算历史序列和…

【MATLAB源码-第144期】基于matlab的蝴蝶优化算法(BOA)无人机三维路径规划,输出做短路径图和适应度曲线。

操作环境: MATLAB 2022a 1、算法描述 ​蝴蝶优化算法(Butterfly Optimization Algorithm, BOA)是基于蝴蝶觅食行为的一种新颖的群体智能算法。它通过模拟蝴蝶个体在寻找食物过程中的嗅觉导向行为以及随机飞行行为,来探索解空间…

java.lang.IllegalStateException: Promise already completed.

spark submit 提交作业的时候提示Promise already complete 完整日志如下 File "/data5/hadoop/yarn/local/usercache/processuser/appcache/application_1706192609294_136972/container_e41_1706192609294_136972_02_000001/py4j-0.10.6-src.zip/py4j/protocol.py"…

docker打包当前dinky项目

以下是我的打包过程&#xff0c;大家可以借鉴。我也是第一次慢慢摸索&#xff0c;打包一个公共项目&#xff0c;自己上传。 如果嫌麻烦&#xff0c;可以直接使用我的镜像&#xff0c;直接跳到拉取镜像&#xff01; <可以在任何地方的服务器进行拉取> docker打包当前din…

prime_series_level-1靶场详解

环境搭建 官网https://www.vulnhub.com/entry/prime-1,358/ 直接导入靶机 解题思路 arp-scan -l 确认靶机ip为192.168.236.136 也可以使用nmap扫网段 nmap -sn 192.168.236.0/24 使用nmap扫描靶机开放的端口 nmap -sS -T5 --min-rate 10000 192.168.236.136 -sC -p- &#xf…

《深入浅出 Spring Boot 3.x》预计3月份发版

各位&#xff0c;目前本来新书《深入浅出 Spring Boot 3.x》已经到了最后编辑排版阶段&#xff0c;即将在3月份发布。 目录&#xff1a; 现在把目录截取给大家&#xff1a; 主要内容&#xff1a; 本书内容安排如下。 ● 第 1 章和第 2 章讲解 Spring Boot 和传统 Spri…

Typora结合PicGo + 使用Github搭建个人免费图床

文章目录 一、国内图床比较二、使用Github搭建图床三、PicGo整合Github图床1、下载并安装PicGo2、设置图床3、整合jsDelivr具体配置介绍 4、测试5、附录 四、Typora整合PicGo实现自动上传 每次写博客时&#xff0c;我都会习惯在Typora写好&#xff0c;然后再复制粘贴到对应的网…

WPF 开发调试比较:Visual Studio 原生和Snoop调试控制台

文章目录 前言运行环境简单的WPF代码实现一个简单的ListBoxVisual Studio自带代码调试热重置功能测试实时可视化树查找窗口元素显示属性 Snoop调试使用Snoop简单使用调试控制台元素追踪结构树Visual/可视化结构树Logical/本地代码可视化树AutoMation/自动识别结构树 WPF元素控制…

python jupyter notebook打开页面方便使用

如果没安装jupyter, 请安装&#xff1a; pip install jupyter notebook 运行jupyter notebook jupyter-notebook

牵引机和挖掘机装配流水线自动互锁防呆系统无线通讯应用

在挖掘机装配工序中&#xff0c;液压系统检测、调试是其生产工艺中的重要环节。液压检测过程中需要操作铲斗、斗杆、动臂动作&#xff0c;这一过程中流水线挖掘机因带动偏移易发生安全事故及机械损伤故障等情况&#xff0c;需要采用牵引机链条牵引固定流水线挖掘机&#xff0c;…

flutter开发实战-手势Gesture与ListView滚动竞技场的可滑动关闭组件

flutter开发实战-手势Gesture与ListView滚动竞技场的可滑动关闭组件 最近看到了一个插件&#xff0c;实现一个可滑动关闭组件。滑动关闭组件即手指向下滑动&#xff0c;组件随手指移动&#xff0c;当移动一定位置时候&#xff0c;手指抬起后组件滑出屏幕。 一、GestureDetect…

用一行代码在几秒钟内抓取任何网站

如果你正在寻找最强大的 Python 抓取工具&#xff1f;不要再看了&#xff01;这一行代码将帮助你立即启动并运行。 Scrapeasy Scrapeasy 是一个 Python 库&#xff0c;可以轻松抓取网页并从中提取数据。它可用于从单个页面抓取数据或从多个页面抓取数据。它还可用于从 PDF 和…

通过跳板机拷贝远程服务器文件

## 背景 在日常开发或者运维中&#xff0c;经常会遇到开发环境与线上环境网络隔离&#xff0c;需要通过跳板机连接的场景&#xff0c;如果需要将目标机器上的定位信息搬迁到开发机做进一步排查时&#xff0c;经常取文件比较费劲&#xff0c;一般操作是将目标文件拷贝到跳板机&…

gnss 自然灾害监测预警系统是什么

【TH-WY1】GNSS自然灾害监测预警系统是一种基于全球导航卫星系统&#xff08;GNSS&#xff09;技术的自然灾害监测和预警系统。它利用GNSS的高精度定位技术&#xff0c;通过在地表布置GNSS接收设备&#xff0c;实时监测地表形变、位移、沉降等参数&#xff0c;从而实现对自然灾…

【FX110】因为爱情,台湾汇友陷OrientalFX投资骗局损失近50万

近日&#xff0c;一位台湾汇友就在感情与金钱上受到双重打击&#xff0c;在一场“浪漫骗局”中损失近50万新台币。 因为爱情&#xff0c;陷入无法出金的投资骗局 据汇友描述&#xff0c;她从未有过投资经验&#xff0c;之所以突然入市&#xff0c;是因为“Kevin”。Kevin是她在…

全面InfiniBand解决方案——LLM培训瓶颈问题

ChatGPT对技术的影响引发了对人工智能未来的预测&#xff0c;尤其是多模态技术的关注。OpenAI推出了具有突破性的多模态模型GPT-4&#xff0c;使各个领域取得了显著的发展。 这些AI进步是通过大规模模型训练实现的&#xff0c;这需要大量的计算资源和高速数据传输网络。端到端…

软考系分之多媒体的容量计算、多媒体的标准、媒体数据压缩

文章目录 1、概要2、数据压缩3、多媒体的标准4、多媒体的容量计算5、总结 1、概要 本篇重点介绍多媒体技术&#xff0c;包括多媒体标准、数据压缩和媒体容量的计算。 2、数据压缩 媒体数据能压缩的话&#xff0c;有个前提条件就是数据存在冗余&#xff0c;包括时间冗余、空间冗…

【Java程序设计】【C00267】基于Springboot的在线考试系统(有论文)

基于Springboot的在线考试系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 本系统是基于Springboot的在线考试系统&#xff1b;本系统主要分为管理员、教师和学生三种角色&#xff1b; 管理员登录系统后&#xff0c;可以对首页&#x…

【打工日常】使用docker部署StackEdit编辑器-Markdown之利器

一、StackEdit介绍 StackEdit一款强大的在线Markdown编辑器&#xff0c;不仅具备卓越的写作功能&#xff0c;还支持实时预览、多设备同步等特性。 很多时候基于安全和信息保密的关系&#xff0c;建议放在自己的服务器或者本地linux去运行&#xff0c;这样会比较省心。 二、本次…

day16_ListSet课后练习题 - 参考答案

文章目录 day16_课后练习题第1题第2题第3题第4题第5题第6题第7题第8题 day16_课后练习题 第1题 案例&#xff1a; ​ 1、用一个String[]数组存点数 ​ 2、用一个String[]数组存花色 ​ 3、用一个String[]数组存大王、小王 ​ 4、用上面的数组&#xff0c;生成一副扑克牌 …