How can i run wildfly 8 in port 80 - wildfly

How can i run wildfly 8.2.1 in port 80? I can run wildfly in different ports by changing the offset as below.
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:100}">
But unable to run in port 80.

Offset adds that value to all ports. So if you had http set to the default port 8080, an offset of 100 would set it to 8180.
You want to set the socket for http.
<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-group>
Alternatively, all of these values can be passed in via command line. so you can run: standalone.sh -Djboss.http.port=80
Note: on some operating systems: OSX and variants of Linux you must be superuser to bind things to port 80.

Related

JMX JBoss non-JRMP server at remote endpoint

JConsole is failing remote connection to JBoss JMX. As understood JMX is enabled by default in JBoss 6.4, using the management-native port, as per below config
standalone-full.xml
<subsystem xmlns="urn:jboss:domain:jmx:1.3">
<expose-resolved-model/>
<expose-expression-model/>
<remoting-connector use-management-endpoint="true"/>
</subsystem>
<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>
Using JConsole from Windows machine, trying to make Remote Connection to remote host 192.168.1.1:9999, with JBoss CLI (also listening on port 9999) username and password credentials.
Getting error
Connection Failed: non-JRMP server at remote endpoint
I'm running TCPDump on remote host and can see the incoming request from Jconsole
I have tried non-JRMP server at remote endpoint , and others to no avail
Any help will be appreciated
Thanks

Configuring JBoss 7.x in domain mode with negative port offset

I would like to change the default port of JBoss 7 in both standalone and domain mode to 5050:
http://localhost:5050
In standlone mode, I simply changed the below property in standlone.xml:
<socket-binding name="http" port="5050"/>
In domain mode, however, I have the option to only change the offset in host.xml:
<server name="server-one" group="main-server-group">
<!-- Remote JPDA debugging for a specific server
<jvm name="default">
<jvm-options>
<option value="-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"/>
</jvm-options>
</jvm>
-->
<socket-bindings port-offset="5"/>
</server>
<server name="server-two" group="main-server-group" auto-start="true">
<!-- server-two avoids port conflicts by incrementing the ports in
the default socket-group declared in the server-group -->
<socket-bindings port-offset="10"/>
</server>
When I try setting a negative port-offset, the startup script throws an error. How can I change the port from 8080 to 5050 in domain mode?
Create system property in host.xml for "jboss.http.port" like :
<server name="server-two" group="main-server-group" auto-start="true">
<system-properties>
<property name="jboss.http.port" value="4950" boot-time="true"/>
</system-properties>
<socket-bindings port-offset="100"/>
</server>
Just make sure that port-offset value must be deducted from 5050.

Is it possible to disable clustering at runtime on a JBoss 7/WildFly node?

we need from time to time to perform some maintainence on nodes of our WildFly cluster nodes. During these operations we want that the node leaves the cluster but it's still possible to manage its configuration through the CLI or the Web console. Later on, the member should return to the cluster.
Any suggestion how to do that, without a server restart ?
Thanks
I think this kind of scenario is worth exploring especially in standalone mode where every server of the cluster can have an individual configuration, hence you might need some maintenance at server level. That being said, you can use the multicast address to switch off a Server or a Server Group from the Cluster and later, once that you completed the maintenance, let it return to the cluster.
1. Start by finding a multicast address which is not being used in your network.
2. Next, create a new Socket Binding group which has a custom jgroups-udp IP address (or jgroups-tcp if you are using a TCP cluster):
<socket-binding-group name="ha-sockets.maintenance" default-interface="public">
<socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
<socket-binding name="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
<socket-binding name="jgroups-tcp" port="7600"/>
<socket-binding name="jgroups-tcp-fd" port="57600"/>
<socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.11}" multicast-port="45688"/>
<socket-binding name="jgroups-udp-fd" port="54200"/>
<socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>
<socket-binding name="txn-recovery-environment" port="4712"/>
<socket-binding name="txn-status-manager" port="4713"/>
<outbound-socket-binding name="mail-smtp">
<remote-destination host="localhost" port="25"/>
</outbound-socket-binding>
</socket-binding-group>
Now, when you need to temporarily remove a Server Group from the cluster, just issue from your CLI (you can use as well the Admin Console):
/server-group=other-server-group/:write-attribute(name=socket-binding-group,value=ha-sockets.maintenance)
You will also need an host reload after the above operation:
reload --host=master
Now, the other server group will leave the cluster so you can perform maintenance.
Later on, you can let your Server Group join the cluster, by setting the standard ha-sockets bindings:
/server-group=other-server-group/:write-attribute(name=socket-binding-group,value=ha-sockets)
As a side node, consider that you can even set the socket bindings at server level with:
/host=master/server-config=server-one/:write-attribute(name=socket-binding-group,value=ha-sockets.maintenance)
I don't advice it though as you will have an unsynchronized configuration between your servers which are part of a Server group. Hope it helps. For further information check this tutorial

Load balancing in mod cluster is not working

I have Jboss server in Linux boxes. And I configured apache server in windows machine. I am able to see all the jboss server nodes in my modcluster manager console.
I have deployed one camel application on all the jboss servers. And I have done the performance test with 2,4,6 nodes. But there is no performance difference.......
Find the jboss configuration
<subsystem xmlns="urn:jboss:domain:modcluster:1.0">
<mod-cluster-config proxy-list="x.x.x.x:6666" advertise="false">
<dynamic-load-provider>
<load-metric type="busyness"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>
For parallel execution of nodes, whether I have to do any other configurations...
Thanks in advance................
1 - download last version of mod_cluster at this link and extract it..
2 - configure your mod_cluster at the httpd.conf file like above..
Listen ##PUT THE BALANCER IP HERE##:80
############### mod_cluster Setting - STARTED ###############
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
# MOD_CLUSTER_ADDS
# Adjust to you hostname and subnet.
<IfModule manager_module>
Listen ##PUT THE BALANCER IP HERE##:6666
ManagerBalancerName mycluster
<VirtualHost ##PUT THE MACHINE IP HERE##:6666>
<Location />
Order deny,allow
Deny from all
Allow from 192.168.0
</Location>
KeepAliveTimeout 300
MaxKeepAliveRequests 0
AdvertiseFrequency 5
EnableMCPMReceive
<Location /mod_cluster_manager>
SetHandler mod_cluster-manager
Order deny,allow
Deny from all
Allow from 192.168.0
</Location>
</VirtualHost>
</IfModule>
############### mod_cluster Setting - ENDED ###############
3 - Set each of your jboss node's name
<server name="node1" xmlns="urn:jboss:domain:1.2">
4 - Add the instance-id attribute in web subsystem as shown below in both the standalone nodes
<subsystem xmlns="urn:jboss:domain:web:1.1" instance-id="${jboss.node.name}" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/>
.
.
.
</subsystem>
5 - Add the proxy-list in the attribute in mod-cluster-config of modcluster subsystem, which would be having IP Address and Port on which your Apache server (the balancer) is running so that JBoss server can communicate with it, as shown below in both the standalone nodes
<subsystem xmlns="urn:jboss:domain:modcluster:1.0">
<mod-cluster-config advertise-socket="modcluster" proxy-list="##PUT THE BALANCER IP HERE##:80">
.
.
.
</mod-cluster-config>
</subsystem>
6 - Now you can go to http://BALANCER_IP:80 and test it and to manage the jboss instances with mod_cluster go to http://BALANCER_IP:6666/mod_cluster_manager
**Obs: if you want to run jboss in standalone mode you CANNOT use the "-b" flag with the ip 0.0.0.0 that listens requests from all IPs.. I recommend you use the IP of the machine that's running the jboss itself
with sticky-session="true" (default), balancer keeps sending requests to the particular node to whom the session belongs as long as it is healthy.
If you tell me how did you test, especially: how many clients vs. how many requests, or not etc., I will be able to help you.
Furthermore, consider editing capacity attribute of load-metric element.
BTW: "busyness" considers threads in thread pool being occupied with serving requests. You might find that this is not the bottleneck of your system. You might want to add heap, requests or other metrics. See http://docs.jboss.org/mod_cluster/1.2.0/html_single/

How do I Configure two https connector port in jboss 7?

I need to configure 2 https ports (5480 and 8443) in jboss 7 ( I did this jboss 5 adding one more connector port). I tried creating two https connector ports in standalone-full.xml but it did not work.
Following is my current configuration for 8443 https port and I need another port 5480 as well.
<subsystem xmlns="urn:jboss:domain:web:1.2" default-virtual-server="default-host" native="false">
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
<ssl key-alias="tomcat" password="FOO#Bar-1" certificate-key-file="${jboss.server.config.dir}/keystore" cipher-suite="TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_RC4_128_MD5" protocol="TLS" verify-client="false"/>
</ connector >
</subsystem>
<socket-binding name="https" port="8443"/>
Unless you changed some configuration, your standalone jboss container reads configuration from standalone.xml rather than from standalone-full.xml. The "full" version is like an example file.