如何部署前后端分离的JavaWeb项⽬
在开发中⼤型的JavaEE项⽬时,前后端分离的框架逐渐成为业界的主流,传统的单机部署前后端在同⼀个项⽬中的⼯程项⽬越来越少。这类JavaWeb项⽬的后端通常都采⽤微服务的架构,后端会被分解为诸多个⼩项⽬,然后使⽤dubbo+zookeeper或者springCloud来构建微服务,前端则会是⼀个单独的项⽬,前台的请求通过微服务来调⽤。但是,不同与传统的web项⽬,这类前后端分离的项⽬如何在开发中部署和运⾏呢?
当前后端分离时,后端项⽬⼀定会被加载到tomcat的webapp⽬录下⾯,但是前端的资源院该如何被访问到呢?这⾥以tomcat这个中间件为例,探讨在开发这类项⽬的时候,如何让前后端分离的项⽬部署并且运⾏起来,即后端项⽬部署在tomcat之后如何在运⾏时访问静态资源(⾮上线部署)。
主要有两种⽅案:1.在本地通过Nginx来处理这些静态资源。2、将静态资源统⼀放⼊⼀个javaweb应⽤中,并将⾃动⽣成的war包随后端项⽬⼀期丢⼊tomcat。下⾯详细介绍
⼀、使⽤Nginx来访问静态资源。
在本地安装nginx并且修改f,修改相关配置,将web访问的端⼝的资源进⾏更改,配置如下:
server {
listen 80;
server_name localhost;
charset utf-8;
#access_log logs/host.access.log main;
location / {
proxy_pass tomcat_pool;
proxy_redirect off;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|woff|woff2|ttf|eot|map)$ {
root D:\Workspaces\esop-html;
nginx部署前端项目
index index.html;
}
listen对象改为你本地的tomcat访问端⼝,最下⾯location中的root改为你前端项⽬中静态资源的位置,这样就可以实现只部署后端的项⽬就能访问前端的页⾯了。
⼆、将前端项⽬转换为动态的web项⽬,随后端项⽬⼀起丢⼊tomcat
这个⽅案省去了在本地安装和配置nginx,但是也只适⽤于开发阶段项⽬的部署运⾏和调试,真正在⽣产环境通常前后端项⽬会部署在不同的服务器。
如果是Intellij Idea,在导⼊前端项⽬之后,右键项⽬ add framework support --> web application,这时将会把前端项⽬转换为⼀个javaweb项⽬,然后将静态资源放在⽣成的web⽬录下即可。
如果是eclipse,可以新建⼀个javaweb项⽬然后将静态资源放⼊web或者webcontent⽬录下,或者直接先导⼊前端项⽬,然后通过project facts 将项⽬转换为dynamic web项⽬并勾选 js等相关配置。
然后,运⾏项⽬时把后端的war包和前端的war包⼀同添加到 deployment中运⾏即可。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论