如何将 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
的代理请求
如何将 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
的代理请求