1、配置tomcat
① 编辑tomcat的catelina.sh文件,进入tomcat安装目录,使用命令:sudo vim bin/catalina.sh,如果是普通用户启动的,则修改damen.sh文件:sudo vim bin/daemon.sh
② 在catelina.sh文件中的"# ----- Execute The Requested Command -----------------------------------------" 行之前添加配置,内容如下:
CATALINA_OPTS="$CATALINA_OPTS \
-Djava.rmi.server.hostname=换成真实的ip(外网) \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=未用端口号 \
-Dcom.sun.management.jmxremote.rmi.port=和前面的那个端口号一样 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.pwd.file=pwd文件目录(选填)"
说明:
(1) -Dcom.sun.management.jmxremote.pwd.file可以直接去掉,没有该属性时,默认为: $JAVA_HOME/jre/lib/management/jmxremote.password文件
(2) -Dcom.sun.management.jmxremote.authenticate表示是否需要账号密码登录,为false时,不需要账号密码即可连接
添加后的效果如图:
2、配置jdk
① 创建访问账号文件
cd $JAVA_HOME/jre/lib/management #进入配置目录
sudo mv jmxremote.password.template jmxremote.password # 创建密码文件
sudo chmod 777 jmxremote.access # 不是必须777权限,主要是为了让tomcat执行用户对该文件有读取权限
sudo chmod 600 jmxremote.password # 权限设置为600,其余权限不支持,且tomcat执行用户需要有该文件的读取权限
sudo vi jmxremote.password # 修改访问账号密码
② 创建访问账号密码
将jmxremote.password文件中的最后2行前面的#去掉即可,效果如下:
其中monitorRole为只拥有只读权限的角色,controlRole有更高权限:读写等等。前面一个参数名为账号,后面一个参数为密码,密码自行进行修改。
说明:
- 正式环境最好将密码设置的复杂一些
- 如果想要设置用户的权限,需要在jmxremote.access中设置
3、配置防火墙
① 修改防火墙配置, 输入命令: sudo vim /etc/sysconfig/iptables
② 将刚才我们设置的端口号加入到防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 12345 -j ACCEPT
效果如下:
③ 重启防火墙: sudo service iptables restart
4、配置hosts
① 输入命令hostname查看服务器的hostname
② 将hostname加入到hosts文件中:sudo vim /etc/hosts
③ 在hosts中加入ip(外网,和catelina.sh中设置的一致) hostname
5、重启tomcat
至此,服务器端配置完成。
6、windows连接
点击java安装目录下的/bin/jconsole.exe:
选择远程进程,输入hostname:port, 用户名和密码后,点击连接即可。