如何将Java Web应用程序部署到远程Wildfly服务器?

时间:2018-08-03 00:55:55

标签: java java-ee deployment server wildfly

如何将Java应用程序部署到远程Wildfly服务器?

在localhost上,应用程序运行正常。

因此,我有一个域名"http:// mysite.com",该域名指向我的VPS主机。

Java已安装并正在运行wildfly。在Wildfly部署目录中,放置文件"mysite.com.war"并使用命令"./standalone.sh -Djboss.http.port = 80"运行wildfly。

但是在浏览器中“ http:// mysite.com”不可用。

好消息是,“ http:// mysite.com:8080”显示了一个标准的wildfly屏幕保护程序,这意味着我已经关闭并且服务器已启动并且域名正确。

在主机上未安装apache或nginx,仅安装了wildfly。

如何在“ http:// mysite.com”启动我的应用程序?

更新。

我使用命令“ ./standalone.sh -b 0.0.0.0”启动了wildfly,并添加了WEB-INF / jboss-web.xml文件-

<jboss-web xmlns = "http://www.jboss.com/xml/ns/javaee"
    xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
    xsi: schemaLocation = "
       http://www.jboss.com/xml/ns/javaee
       http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd ">
    <context-root> / </ context-root>
</ jboss-web>

现在我的应用程序可从“ http:mysite.com:8080”获得,如何在“ http:mysite.com”中使其可用?

2 个答案:

答案 0 :(得分:0)

如果不以超级用户身份运行服务器,则无法绑定到端口80-这是一个严重的安全问题。

您将需要运行apache + mod_proxy,nginx,haproxy,pull或类似程序;这将侦听端口80并向localhost:8080代理请求

答案 1 :(得分:-1)

Wildfly以独立模式启动。您需要找到wildfly-12.0.0.Final/standalone/configuration/standalone.xml并在undertow订阅域的子集中找到该应用程序:

MAX

然后在同一文件中,找到interfaces部分并将127.0.0.1修复为您的ip地址:

<subsystem xmlns="urn:jboss:domain:undertow:4.0">
    <buffer-cache name="default"/>
    <server name="default-server">
        <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
        <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
        <host name="default-host" alias="localhost">
            <location name="/" handler="welcome-content"/>
            <filter-ref name="server-header"/>
            <filter-ref name="x-powered-by-header"/>
            <http-invoker security-realm="ApplicationRealm"/>
        </host>
        <host name="mysite.com" alias="www.mysite.com" default-web-module="mysite.com.war" disable-console-redirect="false"/>
    </server>
    ...
</subsystem>

最后,在套接字绑定组部分中,您可以修复所使用的端口:

<interfaces>
    <interface name="management">
        <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
    </interface>
    <interface name="public">
        <inet-address value="${jboss.bind.address:151.101.65.69}"/>
    </interface>
</interfaces>

现在只需要“ ./standalone.sh”就可以运行不带参数的wildfly,我们的应用程序将在mysite.com上可用!