一. 前言
最近给公司的某个项目做了一个后台管理系统,由于项目比较复杂,所以没有在原项目上编写,而是直接另起了一个SpringBoot项目专门用来写后台管理,在线上部署的时候遇到了一个问题,由于是该项目的前台和后台是两个独立的SpringBoot项目,但是我又不想给两个项目分别指配一个二级域名,而是想让着两个项目共用一个二级域名,那么该如何解决呢?
二. 前台项目部署
我们首先部署前台项目,前台项目正常部署即可,这里为给新手提供方便,也给出相关操作:由于公司的服务器安装了宝塔,所以接下来的操作都以宝塔为例:
1.首先创建站点,如下图
2. 接下来进入该站点的根目录,将打包好的Maven项目上传,并用以下命令启动项目:
nohup java -jar 项目名称.jar > 项目名称.log 2>&1 &
3. 接下来给该项目设置反向代理,点击设置,选择反向代理,设置端口号,如下图:
点击提交后,宝塔会自动在 /www/server/panel/vhost/nginx/proxy中添加一下一个.conf文件,内容如下:
#PROXY-START/ location ~* \.(php|jsp|cgi|asp|aspx)$ { proxy_pass http://127.0.0.1:18888; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; } location / { proxy_pass http://127.0.0.1:18888; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; add_header X-Cache $upstream_cache_status; #Set Nginx Cache add_header Cache-Control no-cache; expires 12h; } #PROXY-END/
此文件会被宝塔默认引入到网站的配置文件中,如下图:
此时前台的项目便部署完成,我们访问a.zhangjia.io便可以通过18888端口打开我们的前台项目
三. 后台项目部署
1. 给后台项目添加项目路径
打开后台项目中的application.yml,添加端口和项目路径配置
server: port: 18887 servlet: context-path: /admin
加上此配置后,后台的所有链接都会加上/admin这个前缀,以test.com/123为例,添加该配置后就变成了test.com/admin/123
2. 部署后台项目
进入服务器的/www/wwwroot目录,新建一个admin.zhangjia.io文件夹,将后台项目打包好上传到该目录,并启动
3. 配置Nginx
有第一步上面的项目路径后,我们便可以根据该路径来识别后台项目,只要是以/admin开头的链接,统一交由后台项目处理
在宝塔中上一步中部署的前台项目,点击设置,网站配置,添加以下配置:
location /admin { root /www/wwwroot/admin.zhangjia.io; proxy_pass http://127.0.0.1:18887/admin/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
如下图:
此时前台和后台的两个项目虽然是分开部署的,但均使用了同一个域名
请登录之后再进行评论