部署springboot应用程序并对React应用程序做出反应

时间:2018-09-29 15:33:39

标签: spring reactjs nginx apache2 web-deployment

我创建了一个简单的应用程序,其中包含一个reactjs前端和一个Spring Boot应用程序作为后端。在我的本地环境下工作正常; React应用程序在端口3000上运行,而spring应用程序在端口9000上运行。

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

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

在我的react应用程序中,我调用后端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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

没有服务器就无法部署war文件。只需按照下面的步骤

1)安装tomcat

2)查找tomcat webapps路径(/ usr / local / tomcat / webapps)

3)将您的war文件复制到webapps。 (使用scp)

4)确保您的war文件和tomcat在同一端口上侦听。 8080或9000

5)通过apache代理您的api