如何在tomcat的godaddy vps中部署Spring Boot应用程序?

时间:2019-05-26 05:59:35

标签: spring-boot tomcat deployment vps

我想在godaddy vps服务器上部署springboot应用程序。并且应在提供网站名称时加载应用程序。我希望应用程序永远运行,除非我明确显示了tomcat。我的springboot应用程序配置为在端口8090上运行

我已经在vps服务器中安装了java和tomcat。它是ISPconfig服务器。但是我不确定ISPConfig Server的工作。

  1. 我可以使用嵌入的tomcat运行jar文件。但是应用程序会在腻子会话结束时立即关闭。我尝试使用屏幕命令,但应用程序也无法永远运行
  2. 当我托管应用程序usinf jar时。无法通过域名访问。我必须使用ip addess:端口号。因此,我如何在88端口托管该应用程序。并覆盖Godaddy的默认网页?
  3. 我尝试将war文件放入tomcat文件夹的webapps中,然后启动了tomcat。但与此同时,我也无法运行该应用程序。

1 个答案:

答案 0 :(得分:1)

以下是您需要执行的步骤,以便在GoDaddy上通过VPS进行部署。 假设您正在使用Linux。

  1. 创建一个服务,该服务将在启动时继续运行jar / war文件并保持其活动状态。
  2. 安装NGINX,它将帮助您使用IP或域URL配置Web服务。
  3. 在/ etc中创建conf文件,该文件将指定所有服务器配置,如下所示:
"""This script wraps the client into a Flask server. It receives POST request with
prediction data, and forward the data to tensorflow server for inference.
"""

from flask import Flask, render_template, request, url_for, jsonify,Response
import json
import tensorflow as tf
import numpy as np
import os
import argparse
import sys
from datetime import datetime

from grpc.beta import implementations
from tensorflow_serving.apis import predict_pb2
from tensorflow_serving.apis import prediction_service_pb2

tf.app.flags.DEFINE_string('server', 'localhost:9000', 'PredictionService host:port')
FLAGS = tf.app.flags.FLAGS

app = Flask(__name__)


class mainSessRunning():
    def __init__(self):
        host, port = FLAGS.server.split(':')
        channel = implementations.insecure_channel(host, int(port))
        self.stub = prediction_service_pb2.beta_create_PredictionService_stub(channel)

        self.request = predict_pb2.PredictRequest()
        self.request.model_spec.name = 'example_model'
        self.request.model_spec.signature_name = 'prediction'

    def inference(self, val_x):
        # temp_data = numpy.random.randn(100, 3).astype(numpy.float32)
        temp_data = val_x.astype(np.float32).reshape(-1, 3)
        print("temp_data is:", temp_data)
        data, label = temp_data, np.sum(temp_data * np.array([1, 2, 3]).astype(np.float32), 1)
        self.request.inputs['input'].CopyFrom(
            tf.contrib.util.make_tensor_proto(data, shape=data.shape))

        result = self.stub.Predict(self.request, 5.0)
        return result, label


run = mainSessRunning()

print("Initialization done. ")


# Define a route for the default URL, which loads the form
@app.route('/inference', methods=['POST'])
def inference():
    request_data = request.json
    input_data = np.expand_dims(np.array(request_data), 0)
    result, label = run.inference(input_data)
    di={"result":str(result),'label': label[0].tolist()}
    return Response(json.dumps(di), mimetype='application/json')
  1. 然后重新启动NGINX服务器,更改将得到反映