• 中文
    • English
  • 注册
  • 查看作者
    • 采用Nginx将两个不同的SpringBoot项目部署到同一个域名

      一.  前言

      最近给公司的某个项目做了一个后台管理系统,由于项目比较复杂,所以没有在原项目上编写,而是直接另起了一个SpringBoot项目专门用来写后台管理,在线上部署的时候遇到了一个问题,由于是该项目的前台和后台是两个独立的SpringBoot项目,但是我又不想给两个项目分别指配一个二级域名,而是想让着两个项目共用一个二级域名,那么该如何解决呢?

      二. 前台项目部署

      我们首先部署前台项目,前台项目正常部署即可,这里为给新手提供方便,也给出相关操作:由于公司的服务器安装了宝塔,所以接下来的操作都以宝塔为例:

      1.首先创建站点,如下图

      采用Nginx将两个不同的SpringBoot项目部署到同一个域名

      2. 接下来进入该站点的根目录,将打包好的Maven项目上传,并用以下命令启动项目:

       nohup java -jar 项目名称.jar  > 项目名称.log  2>&1 &

      3. 接下来给该项目设置反向代理,点击设置,选择反向代理,设置端口号,如下图:

      采用Nginx将两个不同的SpringBoot项目部署到同一个域名

      点击提交后,宝塔会自动在 /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/

      此文件会被宝塔默认引入到网站的配置文件中,如下图:

      采用Nginx将两个不同的SpringBoot项目部署到同一个域名

      此时前台的项目便部署完成,我们访问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;
           }

      如下图:

      采用Nginx将两个不同的SpringBoot项目部署到同一个域名

      此时前台和后台的两个项目虽然是分开部署的,但均使用了同一个域名

    • 0
    • 0
    • 0
    • 1.2k
    • 请登录之后再进行评论

      登录

      赞助本站

      • 支付宝
      • 微信
      • QQ

      感谢一直支持本站的所有人!

      单栏布局 侧栏位置: