spring - 部署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
解决方案
使用 Spring Boot,您不必使用外部 Tomcat。您可以使用嵌入式 tomcat 将您的应用程序打包到 jar 中。您可以在此处找到更多信息 - https://www.baeldung.com/deployable-fat-jar-spring-boot。
推荐阅读
- javascript - 绑定 ajax:success 被调用,即使元素不是被选中的元素
- php - 查询未从数据库中取消链接图像
- javascript - 当我有多个提交按钮时,如何让 Enter 影响特定的提交按钮?
- c - 如何仅使用一个随用户输入而变化的命令将多个值扫描到二维数组中
- php - 使用 ReactPHP 异步的长轮询电报
- java - 运行平板电脑模拟器时未检测到布局 sw600dp(像素 C)
- javascript - nodeJs 如何连接到数据库并在后台获取数据?
- sql - 插入和更新后的 PL SQL 循环表
- python - 带有小批量的 Pytorch 隐藏单元 LSTM
- vis.js - Vis.js - 将图形标签的字体设置为下划线