HOST绑定如下:
10.1.30.77 sinuobao.com
反复尝试后他们的答复是:“网页打不开。。”
可是我自己本地是可以跑通的,本地HOST配置如下:
127.0.0.1 sinuobao.com
问题的雏形出现了:本机服务器已经启动并能访问的情况下,远程无法访问。
我第一个反应是 防火墙?可是关闭防火墙后依然不行。。
于是我把自己本地的HOST文件也改成了
10.1.30.77 sinuobao.com(实际IP)
果然,我也不能访问。。
问题变成了:无法通过实际IP地址去访问,只能用127.0.0.1或者localhost来访问。
思考一下,启动一个项目,通过127.0.0.1或者localhost可以访问,而实际IP无法访问。问题应该是出在服务器上,应该是服务器没有监听实际IP造成的。由于我是刚把本地的服务器从tomcat换成jboss,于是我更加相信问题是由于Jboss服务器造成的。
Google之,知道了Jboss的一些常用配置文件的路径:
1、相关DTD定义文件位于$JBOSS-HOME/docs/dtd,在其下的文件中可以查阅某个XML配置文件中某个元素或属性的意义。
2、数据源配置文件的路径,$JBOSS-HOME/server/default/deploy,文件格式必须是*-ds.xml的样式。不同的数据库配置参数可参考$JBOSS-HOME/docs/examples/jca/下的示例文档。
3、公共的jar包我们可以放在$JBOSS-HOME/server/default/lib下,如数据库的JDBC jar,log4j.jar等,如果这些JAR已经在该lib下放置了,那么我们的应用WEB-INF/lib下不应该再放置,否则JBOSS也会将他们再一次加载,白白占用内存。
4、配置日志的文件,log4j.xml位于$JBOSS-HOME/server/default/conf下,具体配置下文还会有一点介绍
5、$JBOSS-HOME/server/default/work下存放的是JSP编译后的.java 及.class文件,如果调试JSP时出错了,可以到该目录下(一级级去翻吧)去找对应的文件,调试问题。还有个小TIPS,有时我们明明把一个JSP更新到对应的目录里了,可是去刷新页面时,内容还是旧的,为了解决该问题,我们可以到work目录下,将对应的.java及.class文件删了,再刷新即可,这个原因不好推测,有时可以自动刷新,有时不行。单个的TOMCAT都能自动刷新,不知为何集成到JBOSS里却有时不行。还需注意的事,你在清除旧的java、class文件时,不能为了省事,而直接删除目录,否则刷新时会报错的,等着你的就是要重启JBOSS服务了。
6、$JBOSS-HOME/server/default/log下存放的是日志文件,默认的log4j.xml配置是将日志输出到该文件夹下的server.log文件,可以去查看信息进行调试。
7、配置应用的WEB服务的端口号及参数
JBOSS4.2.2是在….
$JBOSS-HOME \server\default\deploy\jboss-web.deployer\server.xml中,找到8080,修改为你想设定的端口即可。
在官网上看到了以下说明:
JBossAS 4.2.0.GA
* JBossAS now binds its services to localhost (127.0.0.1) *by default*, instead of binding to all available interfaces (0.0.0.0). This was primarily done for security reasons because of concerns of users going to production without having secured their servers properly. To enable remote access by binding JBoss services to a particular interface, simply run jboss with the -b option. To bind to all available interfaces and re-enable the legacy behaviour use -b 0.0.0.0. In any case, be aware you still need to secure you server properly.
原因:
JBOSS 4.2以上版本服务启动如果不加任何参数的话,只监听127.0.0.1,就是说只能用127.0.0.1或者localhost访问,用本机的对外地址 访问不了,同一网络内别的机子没法访问。除非你用参数-b ip地址 来绑定监听的地址才可以。
这和以前版本的JBOSS不一样,以前版本的不加任何参数是监听本机所有的IP地址,现在必须使用参数-b 0.0.0.0才可以监听全部地址。
解决办法有二:
1. 1. 在jboss-4.2.2.GA\bin目录下,新建start.bat文件,录入如下内容:
run.bat -b 0.0.0.0
保存即可。使用你新制作的start.bat文件启动服务之后就可以IP访问了。
2. 2. 找到
$JBOSS-HOME \server\default\deploy\jboss-web.deployer\server.xml,找到:
JBOSS
<Connector port="8080" address="${jboss.bind.address}"
将其中的${jboss.bind.address}改为0.0.0.0
再次启动Jboss,问题解决了。
JBoss常用参数:
-c 服务配置名,指定JBoss启动哪个服务配置,默认是default,常用有 -c all
-b 绑定JBoss服务的IP,特别在部署EJB服务,只能通过绑定的IP查找EJB,
-h, –help 显示帮助信息
-V, –version 显示版本信息
-D<name>[=<value>] 设置系统属性
-d, –bootdir=<dir> 设置启动补丁目录的位置;必须是绝对路径或者url
-p, –patchdir=<dir> 设置补丁目录的位置;必须是绝对路径或者url
-n, –netboot=<url> 从指定的url网络位置启动
-c, –configuration=<name> 指定服务器启动的配置(default、all、minimal)
-B, –bootlib=<filename> 将其它的jar包添加到bootclasspath的前面
-L, –library=<filename> 将其它的jar包添加到 loaders classpath
-C, –classpath=<url> 将其它的url添加到loaders classpath
-P, –properties=<url> 从指定的url加载系统属性
-b, –host=<host or ip> 所有JBoss Service绑定的地址
-g, –partition=<name> HA分区的名称(缺省为DefaultDomain)
-u, –udp=<ip> UDP的多播地址
-l, –log=<log4j|jdk> 设置日志记录插件类型
JBoss 4.2.2GA环境变量
JBOSS_HOME JBoss的位置
JAVA Java运行程序的位置
JAVA_OPTS JVM启动参数
MAX_FD JBoss能够使用文件描述符的最大数量(仅用于Un*x)
run.bat文件:
物理内存
意思为:
-Xms128m 初始的java内存堆大小 128M
-Xmx1024m 最大的java内存堆大小 1024M
-XX:PermSize=64m GC预留的内存,如果你的应用有大量的Class被动态载入或卸载,你应该将这个参数设大些
-XX:MaxPermSize=256m 最大的GC预留内存
引用Antx & Webx for Dummies:
—————————————————————————————————————–
应用服务器设置:不管是Tomcat还是JBoss,应用都是比较占用内存的(大量数据被缓存来提升性能),所以你在运行应用前需要调整一下内存,如果内存比较小,你的程序可能都启动不了。请添加环境变量,JAVA_OPTS,将其设置为 “-Xms256M -Xmx768M” ,这样就而可以啦,这个设置对JBoss和Tomcat都可以适用。
—————————————————————————————————————–
另:
修改$jboss/bin/run.conf文件,找到“#JAVA_OPTS=”,如果没有该字符串,请添加,并去掉最前面的“#”,修改该字符串(含双引号)为JAVA_OPTS=”-server -Xms512m -Xmx1024m”,这是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
远程调试
远程调试(remote debug):在开发环境下,通常会设计到程序的debug,在Java中就是通常hotspot机制完成的。如果你想调试你已经运行的Tomcat和JBoss,请找到对应的启动脚本,然后添加以下启动参数项:
JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y
* server:(是”y”或否”n”):如“server=y”,收到一个要依附的调试应用程序;如“server=n”,依附到指定地址的调试应用程序。
* address:连接传送地址。如果server=n,尝试依附到这个地址的调试应用程序;如server=y,收到这个地址的连接。
* timeout:如果server=y,它以毫秒为单位指定等待调试器依附的时间;如server=n,它以毫秒为单位指定依附到调试器所用的时间。
* suspend:如“是”,JVM延缓执行,直到调试器与被调试JVM建立连接。
JBoss 性能优化(解决Jboss内存紧张的问题)
修改$JBOSS_HOME/bin/run.conf文件
JAVA_OPTS=”-Xms 520m -Xmx 1220m -Xss 15120k +XX:AggressiveHeap”
1. +XX:AggressiveHeap
这使得 Xms 1220m没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
另外Xmx作为允许jvm使用的最大内存数量,不应该超过物理内存的90%。
而之所以使用了这个参数,是因为不加的话,JBoss会在运行一天左右的时间后迅速崩溃,甚至半个小时就崩溃。
2. -Xss 15120k
这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
这 就是JBoss刚启动时,还有200Mb内存富余,但会在一个小时内迅速用完,因为服务器的threads在迅速增加。前3天,每天都多吃80Mb左右的 swap.在第四天开始稳定下来。原因是:服务器在线程到达100之后,一般不再增加新的线程,新增加的在用完之后,会被迅速 destroy,1.25-2.10所使用的线程基本是1.21- 1.23创建的,因此没有再消耗新的内存。服务器持续运行时间达到20天。
3. -Xms
指定初始化内存大小
作如下修改:
1.修改JAVA_OPTS,去掉+XX:AggressiveHeap,修改Xss。现在的JAVA_OPTS为:
-Xms 520m -Xmx 900m -Xss 128k
2.修改deploy/jbossweb-tomcat55.sar/service.xml
将maxThreads根据目前的访问量由默认的250降为75,并加入2个参数: maxSparseThreads=”55″,minSparseThreads=”25″
3.去掉了一些不用的服务。
Jconsole: 用于对JVM中内存,线程和类等的监控。
在Jboss启动参数里添加:
set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=$PROGNAME -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
启动Jboss后,在命令行中输入Jconsole,选择远程进程,输入IP地址和上面设置的9999,用户名密码为空。
接下来,看一下这个工具的总括。
Jconsole能捕获到以下信息:
概述 - JVM概述和一些监控变量的信息
内存 - 内存的使用信息
线程 - 线程的使用信息
类 - 加载java类的信息
VM - JVM摘要
MBeans - 所有MBeans的信息
有了上面的概念之后,性能测试过程中需要关注哪些信息呢?一般主要关注内存栏、线程栏、类栏,概述栏和VM栏次之,MBeans栏在追踪具体问题时用到。下面详细说明一下使用方法。
1. 内存栏
内存栏中显示了内存堆栈消耗情况、内存池分区统计情况、垃圾回收情况等内容,并以图表实行显示出来。点击图表下拉框,可以选择具体需要的图。
在这里,还可以强制执行GC,另内存回收更加爽歪歪!
2. 线程栏
线程栏中显示了当前运行的线程,并以图表实行显示出来。对于启用多线程系统分析,非常有用。例如,它可以协助我们追踪线程状态、线程阻塞、线程等待、线程挂起、线程资源争用问题。
3.类栏
类栏中显示了当前加载类的信息。并以图表实行显示出来。如果要了解当前载入类的数量、已载入类的总数量、已卸载类的总数量,在这里查看非常有用。
详细操作文档可见:
http://hi.baidu.com/xuwanbest/blog/item/3f6d4c7b375ff4f10bd18731.html
分享到:
相关推荐
本文将详细介绍如何在 JBoss 4.2 上实现这一需求,即在同一 IP 地址下启动多个 JBoss 服务器实例。 #### 1. 新建服务器实例 首先,在 JBoss 的安装目录(通常称为 `JBOSS_HOME`)下的 `server` 目录中已经默认包含...
1. **网络问题**:确保各节点间网络通畅,配置文件中的IP地址正确。 2. **同步问题**:如果session同步失败,检查共享存储配置和JGroups通信。 3. **负载不均**:如果负载分配不理想,可能需要调整负载均衡器的...
- **Host**:输入JBoss服务器的IP地址或主机名,默认为localhost。 - **Port**:输入JBoss监听的端口号,即上面配置的8787。 - **Connect**:点击“Apply”保存配置,然后点击“Debug”按钮连接到JBoss。 3. **...
1. **静态IP配置**:在Linux环境中,通过编辑`/etc/sysconfig/network-scripts/ifcfg-eth0`文件设置静态IP地址、子网掩码和网关。例如,设置IP为192.168.1.95,掩码为255.255.255.0,网关为192.168.1.1。 2. **DNS...
在主服务器上,需要将`host.xml`中的IP地址更改为服务器实际IP,确保服务可以被正确识别。从服务器则需在主服务器的基础上,额外配置主服务器的IP,以实现与主服务器的通信。安全策略的设定尤为重要,通过`add-user`...
- 复制主服务器数据:通过创建复制用户账号并授权,然后使用CHANGE MASTER TO命令指定主服务器的IP地址、端口号、复制用户等信息。 - 启动复制进程:使用START SLAVE命令启动复制进程,使从服务器开始从主服务器...
- 确保MySQL服务正在运行并且可以被JBoss服务器访问。 - 配置文件中的所有细节都必须准确无误,包括IP地址、端口号、数据库名、用户名和密码。 - JBoss服务器的重启可能需要在每次更改配置后进行,以便加载新的设置...
在这个文件中,我们需要将`<inet-address>`标签内的`127.0.0.1`替换为JBoss服务器的实际IP地址。这涉及到管理接口(management)、公共接口(public)以及不安全接口(unsecure)的权限控制。 此外,还需要修改`...
JBoss支持会话复制和会话粘滞两种策略,前者将所有会话状态在所有节点间复制,后者根据客户端IP地址将请求路由到特定节点。 5. **JbossClustsClient**:这部分源代码可能包含客户端连接到集群的示例,展示如何通过...
4. 配置后端服务器:定义Jboss实例的IP地址和监听端口,确保它们可以被httpd正确访问。 二、Jboss集群部署 Jboss是Red Hat公司的一款基于Java的开源应用服务器,支持集群部署,可以提供高可用性和扩展性。在Linux...
端口是TCP/IP协议的一部分,它允许不同的服务在相同的IP地址上通过不同的端口号来区分和接收数据。每个端口号是一个16位的数字,范围在0到65535之间,其中0-1023是已预留的知名端口,用于特定的服务,比如HTTP的80...
- **无法通过实际IP地址访问**:通常情况下,JBoss默认仅允许通过127.0.0.1或localhost访问。解决方法是配置JBoss绑定到实际的IP地址。 - **JBoss启动常见异常**:在启动过程中可能出现的各种异常情况及其解决方法。...
在`workers2.properties`文件中,每个worker代表一个JBoss或Tomcat实例,它们的IP地址和端口需要正确设置。此外,负载均衡策略(如轮询、最少连接数等)也需要在这里定义。 总结来说,Apache JBoss/Tomcat集群的...
建立连接池 <br>将oracle-ds.xml文件复制到你的Jboss主目录下的server\default\deploy目录下,如果你的目录下已经有了这个文件,你可以把我的内容复制过去,相应的IP地址、SID、用户名、密码等你根据你的实际情况...
其中,`workers.properties`文件定义了每个JBoss实例(worker)的详细信息,如IP地址、端口和负载均衡策略。 4. **配置JBoss服务器**: 需要在每个JBoss实例的配置文件(如server.xml或standalone.xml)中启用远程...
-- 连接 URL,其中 localhost 可替换为数据库服务器的 IP 地址,3306 为 MySQL 默认端口号,xxx 为数据库名称 --> <driver-class>com.mysql.jdbc.Driver</driver-class> <!-- MySQL JDBC 驱动的主类名称 --> ...
公共接口也应配置为只允许特定的IP地址访问,以提高安全性。 #### 配置自动部署 为了使服务器能够自动检测并部署新的应用程序,还需要在`standalone.xml`文件中配置自动部署扫描器。 ```xml ...
- 使用HTTPS协议访问已部署的网站,例如通过浏览器访问`https://gbcom.com:8443`或相应的IP地址。 #### 五、注意事项 - **安全性**: 请妥善保管密钥库文件及其密码,避免泄露导致的安全问题。 - **证书更新**: ...
在 `mod-jk.conf` 文件中,你需要定义 `workers.properties`,这是一个配置文件,其中包含了 JBoss 实例(也称为“worker”)的详细信息,如 IP 地址、端口等。`JkLogFile` 指定了 mod_jk 模块的日志文件位置,以便...