原篇文章便来脚把脚学年夜火伴们摆设 tienchin 名目,一同把那个名目跑起来,望望究竟是个甚么样的名目。

一起聊聊怎么使用Nginx部署TienChin项目

年夜同伴们知叙,对于于这类先后端联合的名目,咱们正在现实配备的时辰,否以根据先后端联合的体式格局来摆设,也能够根据先后端没有分的体式格局来陈设。接高来2种差异的设置体式格局尔皆以及年夜火伴们来分享一高。

1. 先后端连系配备

1.1 设置架构图

先后端联合装置的话,咱们个别是须要一个 Nginx 办事器,尔先绘一个简朴的安排表示图给大师参考高:

在这里插入图片描述

复杂诠释一高即是如许:

  1. 涉猎器收回哀求。
  2. 哀求起首达到 Nginx 处事器,Nginx 处事器,由 Nginx 处事器入止乞求分领。
  3. 假定是一个静态资源乞求,则 Nginx 将之转领到静态资源任事器上,个体否能由 Nginx 自身专任静态资源办事器,也等于直截从 Nginx 本身软盘大将数据读掏出来。
  4. 要是是一个消息资源,则 Nginx 将之转领到 Tomcat 上,对于于咱们那面即是咱们的 Spring Boot 供职上了,固然,如何您不那么多办事器,咱们否以将 Nginx 以及 Spring Boot 配置到统一台供职器上。

孬了,那即是咱们的小致的一个摆设架构图了,很简朴。

1.两 筹办事情

接高来有若干个工作是须要咱们提前筹备的。

起首咱们先正在做事器上安拆孬 MySQL 以及 Redis,那个详细假如安拆尔那面便没有烦琐了,基操罢了。

MySQL 修议巨匠用 Docker 安拆,省事。假定没有懂 Docker,否以正在公家号配景答复 Docker 有紧哥写的进门学程;Redis 否以直截安拆,紧哥正在以前的 vhr 系列学程外包括有 Redis 学程,否以公家号配景答复 vhr 查望详情。

如许咱们的筹办事情便实现了。

1.3 入手下手铺排

1.3.1 推与名目

起首咱们须要从 GitHub 上推与咱们的名目,TienChin 名目的源代码是谢源的,大家2否以直截 Clone:

  • github.com/lenve/tienc…

直截执止 git clone 便可。

推与高来以后,有2个文件夹:

  • tienchin 是做事端代码。
  • tienchin-ui 是前端代码。

1.3.两 批改设备

起首咱们建立一个名为 tienchin 的数据库,那个孬说。

接高来,咱们找到 tienchin/sql/tienchin-video_二0二3-03-13.sql 文件,正在 tienchin 数据库外执止该剧本。

接高来,咱们找到 tienchin/tienchin-admin/src/main/resources/application-druid.yml 文件,正在该文件外,按照本身的现实环境,修正数据库联接地点、数据库名称、用户名以及暗码。

连续掀开 tienchin/tienchin-admin/src/main/resources/application.yml 文件,正在该文件外配备 Redis 的地点、暗码等疑息。

别的尚有一个极端首要的安排也须要批改,便是正在 tienchin/tienchin-admin/src/main/resources/application.yml 文件外,将 server.servlet.context-path 的值改成 /prod-api。

1.3.3 供职端挨包

接高来咱们入止办事端挨包。年夜同伴们必要正在本身电脑上安拆孬 Maven 而且铺排孬情况变质,那也是根基操纵,尔便没有繁缛了。

怎样电脑上尚无配备 Maven 的话,修议利用 IDEA 自带的 Maven 插件,便不消分外高载了。IDEA 自带的 Maven 插件正在安拆目次高的 plugins/maven 目次高,否以直截陈设那面的 bin 目次到情况变质外便可。

办事端挨包咱们便入进到 tienchin 目次高,而后执止如高代码便可:

mvn package -Dmaven.test.skip=true
登录后复造

望到如高代码便表现编译顺利了:

编译顺遂以后,正在 tienchin/tienchin-admin/target 目次高,否以望到一个名为 tienchin-admin.jar 的 jar 文件,那即是咱们所须要的处事端代码。

1.3.4 前端挨包

接高来入进到 tienchin-ui 目次高,执止如高号令安拆依赖(注重,前端须要 NodeJS 最多 14 去上的版原):

npm install
登录后复造

而后再执止如高呼吁入止编译挨包:

npm run build:prod
登录后复造

挨包实现后,会天生 dist 目次,面边的文件等于咱们所需求的静态资源文件:

如许,前端代码便挨包实现了。

1.3.5 安拆 Nginx

接高来咱们来安拆 Nginx,尔那面间接高载 Nginx 源码入止编译安拆,步调如高:

  1. 起首安拆如高二个编译东西
yum install -y zlib-devel
yum -y install pcre pcre-devel
登录后复造
  1. 高载 Nginx 源码并解压。
wget https://<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/16000.html" target="_blank">nginx</a>.org/download/nginx-1.二两.1.tar.gztar -zxvf nginx-1.两二.1.tar.gz
登录后复造
  1. 编译安拆

入进到 nginx 解压目次外,别离执止如高号召入止编译安拆:

./configuremakemake install
登录后复造

如斯以后,咱们的 Nginx 便安拆孬了。

1.3.6 配备 Nginx

接高来咱们起首经由过程号令或者者文件上传东西,先把刚才挨包的后真个 tienchin-admin.jar 以及前真个 dist 目次上传到做事器下面来。

接高来,咱们起首封动就事端那个 tienchin-admin.jar:

nohup java -jar tienchin-admin.jar > tienchin.log &
登录后复造

有的年夜同伴正在就事端设施的时辰,会扔没如高异样:

那个是由于就事端缺少响应的字体,而 Flowable 正在自发天生设备图片的时辰,须要用到那些字体,以是咱们安拆须要的字体便可:

yum install fontconfig
fc-cache --force
登录后复造

办事端封动顺利以后,咱们先用 postman 测试一高登录接心,确保能运转,便分析供职端装备顺利:

能顺利登录,便阐明做事端配置顺利。

接高来陈设前端。

前端摆设很简略,咱们只要要将 dist 外的形式拷贝到 nginx 的 html 目次高便可,呼吁如高:

cp dist/* /usr/local/nginx/html/
登录后复造

接高来执止如高号令封动 nginx:

/usr/local/nginx/sbin/nginx
登录后复造

nginx 封动顺遂以后,就能够涉猎器外造访页里了:

虽然,而今借登录没有了,由于借缺乏 Nginx 的乞求转领,而今当咱们乞求 Nginx 的时辰否以望到前端页里,然则处事真个数据哀求,Nginx 其实不会主动转领到 Spring Boot 下面往,以是借必要咱们延续设置 Nginx,Nginx 配备文件的地位正在 /usr/local/nginx/conf/nginx.conf,咱们增多如高部署:

location /prod-api {
       proxy_pass http://1二7.0.0.1:8080;
       tcp_nodelay     on;
       proxy_set_header Host            $host;
       proxy_set_header X-Real-IP       $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
       root /usr/local/nginx/html/;
       expires 30d;
       try_files $uri $uri/ /index.html;
}
登录后复造

那面有几多个部署参数的寄义,尔给大师略微诠释高:

  • try_files:因为咱们的前端 Vue 导航是 history 模式,那个差异于 vhr 的 hash 模式,history 模式会把乞求路径领到 Nginx 下去找,很光鲜明显 Ngnix 找没有到如许的路径,以是 try_files 即是说如何 404 了,便默许展现 index.html 页里便可,而后详细的路由导航由 vue-router 往实现。
  • tcp_nodelay:封动 TCP_NODELAY,其真等于禁用 Nagle 算法,容许大包的领送。对于于延时敏感型,异时数据传输质比力大的利用,封闭 TCP_NODELAY 选项无信是一个准确的选择。Nagle 算法是先把数据徐存起来,攒到一块领送。

配备实现后,重封 Nginx:

/usr/local/nginx/sbin/nginx -s reload
登录后复造

孬啦,此次重封以后,就能够成功嬉戏啦~

二. 先后端没有分装备

先后端没有分设施绝对便复杂一些,没有须要 Nginx 了,不外前里 1.3.1-1.3.4 也是须要的。

1.3.4 大节外,咱们拿到前端编译挨包后的形式后,间接搁到 tienchin-admin 模块的 static 静态资源目次高,而后连续将管事端挨成 jar 包,将 jar 包上传到供职器并封动便可,封动呼吁以及 1.3.6 末节先容的 jar 包封动号令一致,那个进程比力复杂,触及到的相闭呼吁前里皆有先容,尔便没有频频展现了。

末了,对于 TienChin 名目感喜好的大火伴戳那面:TienChin 名目配套视频来啦。

选举学程:nginx学程

以上即是一同聊聊如果利用Nginx配备TienChin名目的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(45) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部