• 中文
    • 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.5k
  • 请登录之后再进行评论

    登录
    单栏布局 侧栏位置: