如何将 java 网络应用程序部署到远程 wildfly 服务器?

How to deploy the java web-application to a remote wildfly server?

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

在本地主机上,应用程序运行良好。

所以我有一个域名 "http:// mysite.com" 指向我的 VPS 主机。

Java 已经安装并且 运行ning wildfly。在 Wildfly 部署目录中,我使用命令 "./standalone.sh -Djboss.http.port = 80".

放置文件 "mysite.com.war" 和 运行 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" 上使用它?

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

<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>

然后在同一文件中,找到接口部分并将 127.0.0.1 固定为您的 ip 地址:

<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>

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

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    ...
    <socket-binding name="http" port="${jboss.http.port:80}"/>
    <socket-binding name="https" port="${jboss.https.port:443}"/>
    ...
</socket-binding-group>

现在 运行 wildfly 无需参数就足够了,只需“./standalone.sh”,我们的应用程序将在 mysite.com!

上可用

如果不以 root 用户身份 运行 将服务器绑定到端口 80 - 这是一个巨大的安全问题。

您将需要 运行 apache + mod_proxy、nginx、haproxy、pound 或类似软件;这将监听端口 80 和对 localhost:8080

的代理请求