首页 > 解决方案 > 部署springboot应用和react应用到ubuntu服务器

问题描述

我创建了一个简单的应用程序,它由一个 reactjs 前端和一个作为后端的 spring boot 应用程序组成。它在我的本地环境中运行良好;react 应用在 3000 端口上运行,spring 应用在 9000 端口上运行。

我正在尝试在暂存环境中托管此应用程序。我想在 digitalocean 上的 ubuntu 服务器上同时托管 reactjs 和 spring boot 应用程序。我已经设法使用 nginx 部署了 reactjs 前端,现在我想使用 apache2 部署后端。

我在部署 Spring Boot 应用程序时遇到了困难。我已经生成了一个 WAR 文件。

在我的反应应用程序中,我调用后端 spring 应用程序作为浏览器前端的 api。我已经设置了 apache 应用程序来监听端口 9000,如下所示:

<VirtualHost *:9000>
   ServerName 46.101.34.160
   ServerAdmin webmaster@localhost
   DocumentRoot 
/var/www/html/BackEndBookingAndCollections
   </VirtualHost>

我的前端配置详细信息在文件中如下所示;

/etc/nginx/sites-available/FEBookingAndCollections

内容如下:

server {
        listen 80;

        root /var/www/FEBookingAndCollections/build;
        listen [::]:80 default_server;

        server_name 46.101.34.160;
        index index.html index.htm;

        location / {
                 try_files $uri /index.html;
        }

        location /api/bookings/ {
                proxy_pass http://46.101.34.160:9000/api/bookings;
        }
}

在谷歌浏览器的浏览器中,我收到以下错误:

Failed to load resource: net::ERR_CONNECTION_REFUSED :9000/api/bookings:1

标签: springreactjsnginxapache2web-deployment

解决方案


使用 Spring Boot,您不必使用外部 Tomcat。您可以使用嵌入式 tomcat 将您的应用程序打包到 jar 中。您可以在此处找到更多信息 - https://www.baeldung.com/deployable-fat-jar-spring-boot


推荐阅读