搭建java环境\Tomcat安装和基本配置\Tomcat_MSM
来源:互联网 发布:mac迅雷一直是0 编辑:程序博客网 时间:2024/06/07 15:14
(文中的主机均在kvm上虚拟)linux + tomcat/jboss/weblogic/websphere/resin + mysql/oracle/db2 + java====================================================================================================================名词jdk (jre,jvm) (跑任何java程序或软件,都需要先安装jdk)j2eejavaee Enterprise Edition j2se javase Standard Edition j2me javame Micro Edition中间件j2ee平台由一整套服务,应用程序接口和协议规范组成Java 2 Platform,Enterprise Editiontomcat (apache软件基金会)jbosswildfly (redhat)weblogic (oracle)websphere(IBM)resin(CAUCHO)====================================================================================================================tomcat apache + tomcat 官网地址:http://tomcat.apache.org/JDK (java development kit) ,JDK是整个JAVA的核心,包括了JAVA运行环境,JAVA工具和基础类库等。tomcat8.0.20的安装过程1,解压安装jdk# tar xf jdk-8u45-linux-x64.tar.gz -C /usr/local/# ls /usr/local/jdk1.8.0_45/--确认解压成功bin javafx-src.zip man THIRDPARTYLICENSEREADME-JAVAFX.txtCOPYRIGHT jre README.html THIRDPARTYLICENSEREADME.txtdb lib releaseinclude LICENSE src.zip2,解压安装新版本tomcat# tar xf apache-tomcat-8.0.20.tar.gz -C /usr/local/# mv /usr/local/apache-tomcat-8.0.20/ /usr/local/tomcat3,tomcat的环境变量的定义定义在单个tomcat的启动和关闭程序里# vim /usr/local/tomcat/bin/startup.sh # vim /usr/local/tomcat/bin/shutdown.sh 把startup.sh和shutdown.sh这两个脚本里的最前面(但要在#!/bin/bash下在)加上下面一段export JAVA_HOME=/usr/local/jdk1.8.0_45/export TOMCAT_HOME=/usr/local/tomcatexport CATALINA_HOME=/usr/local/tomcatexport CLASS_PATH=$JAVA_HOME/bin/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tool.jarexport PATH=$PATH:/usr/local/jdk1.8.0_45/bin:/usr/local/tomcat/bin启动方法# /usr/local/tomcat/bin/startup.shUsing CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/jdk1.8.0_45/Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.# lsof -i:8080--端口还是8080COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 4224 root 44u IPv6 40596 0t0 TCP *:webcache (LISTEN)使用firefox访问http://IP(你的ip地址):8080可以加到rc.local里做成开机自动启动# echo /usr/local/tomcat/bin/startup.sh >> /etc/rc.local关闭方法# /usr/local/tomcat/bin/shutdown.sh家目录路径:# /usr/local/tomcat/webapps/ROOT/=============================================================================修改监听端口# vim /usr/local/tomcat/conf/server.xml <Connector port="80" protocol="HTTP/1.1" --把8080改成80的话重启后就监听80 connectionTimeout="20000" redirectPort="8443" />--测试后再改回8080端口=============================================================================总结一个小错误:在执行/usr/local/tomcat/bin/shutdown.sh关闭时,如果有下面的错误信息...... Jul 28, 2017 11:56:26 AM org.apache.catalina.startup.Catalina stopServerSEVERE: Could not contact localhost:8005. Tomcat may not be running.Jul 28, 2017 11:56:26 AM org.apache.catalina.startup.Catalina stopServerSEVERE: Catalina.stop: ......解决方法:# vim /usr/local/jdk1.8.0_45/jre/lib/security/java.security 117 securerandom.source=file:/dev/urandom--找到这一行,把random改成urandom再kill杀掉进程重启测试-------------------------------------目录布署# mkdir /usr/local/tomcat/webapps/abc--把abc目录与ROOT同级或者是在ROOT的下一级都是可行的# vim /usr/local/tomcat/webapps/abc/time.jsp<html><body><center><H1><%=new java.util.Date()%></H1></center></body></html>=====================================================================安装完tomcat后,就可以将开发的java应用装上进行测试了因为java开发的开源应用非常少,并且很多不支持较新版本的tomcat,我们这里又是实验环境,所以这里简单安装一个jspxcms让大家看下效果一个开源的java cms系统jspxcms(java内容管理系统)软件包:jspxcms-5.2.4-release.zip步骤:1,解压jspxcms# rm /usr/local/tomcat/webapps/ROOT/* -rf --解压之前先删除原来家目录里的文件# unzip jspxcms-5.2.4-release.zip -d /usr/local/tomcat/webapps/2,去mysql建一个库,进行授权# yum install mariadb mariadb-server -y# systemctl restart mariadb.service# systemctl status mariadb.service# systemctl enable mariadb.service# mysqlMariaDB [(none)]> create database jspxcms;Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> grant all on jspxcms.* to 'li'@'localhost' identified by '123';Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> flush privileges;3,使用firefox的下面路径按照它的步骤进行安装http://IP:8080/5,重启tomcat后,再使用下面路径访问就可以了/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh 前台访问地址:http://IP:8080/后台访问地址:(需要admin用户和其密码登录才有权限)http://IP:8080/cmscp/index.do==================================================================================以前apache+tomcat+mod_jk进行整合现在nginx替代apache,也不需要mod_jk模块nginxtomcat1tomcat2 memcached下面就配置nginx+tomcat+msm(memcached-session-manager)做综合应用由于http是无状态的协议,你访问了页面A,然后在访问B,http无法确定这2个访问来自一个人,因此要用cookie或session来跟踪用户,根据授权和用户身份来显示不同的页面。比如用户A登陆了,那么能看到自己的个人信息,而B没登陆,无法看到个人信息。还有A可能在购物,把商品放入购物车,此时B也有这个过程,你无法确定A,B的身份和购物信息,所以需要一个session ID来维持这个过程。cookie是服务器发给客户端,并且保持在客户端的一个文件,里面包含了用户的访问信息(账户密码等),可以手动删除或设置有效期,在下次访问的时候,会返给服务器。注意:cookie可以被禁用,所以要想其他办法,这就是session。比如:你去商场购物,商场会给你办一张会员卡,下次你来出示该卡,会有打折优惠.该卡可以自己保存(cookie),或是商场代为保管,由于会员太多,个人需要保存卡号信息(session ID)--------------------------------------------------------关于session的讨论方法大概有:一,用cookies二,用nginx里的ip_hash,做成类似sticky session(粘贴会话在一台服务器上)的做法upstream tomcat {ip_hash;server 172.16.25.2:8080 weight=1;server 172.16.25.3:8080 weight=1;}优点:配置简单,方便缺点:可能会造成负载不均衡三,如果是使用tomcat,可以使用tomcat的组播功能(session复制)缺点:难配置,组播会影响整个架构性四,利用nginx插件实现tomcat集群和session同步,nginx-upstream-jvm-route-0.1.tar.gz,是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能,可通过http://code.google.com/p/nginx-upstream-jvm-route/downloads/list获取。五,memcache来共享session(memcached-session-manager) 我client张三李四tomcat1tomcat2 王五memcached==========================================下图中:192.168.100.0/24网络我模拟外网(这里我用kvm的virbr1来模拟)172.16.25.0/24网络我模拟内网(这里我用kvm的桥接网络来模拟)nginx解析静态页面并将动态负载均衡调度给后面多个tomcattomcat解析java动态程序client 192.168.100.1 | |192.168.100.5 nginx | 172.16.25.5 | |----------|tomcat1 tomcat2172.16.25.2 172.16.25.3 | | |----------------------| | | 172.16.25.4 memcached服务器实验前准备:1,主机名三步绑定172.16.25.5nginx.cluster.com172.16.25.2tomcat1.cluster.com172.16.25.3tomcat2.cluster.com172.16.25.4memcached.cluster.com2,时间同步3,关闭iptables,selinux4,配置yum 第一步:1,在172.16.25.5上安装nginx# yum install nginx -y2,配置nginx# cat /etc/nginx/nginx.conf |grep -v '#'user nginx;worker_processes auto;error_log /var/log/nginx/error.log;pid /run/nginx.pid;include /usr/share/nginx/modules/*.conf;events { worker_connections 1024;}http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf;upstream tomcat {server 172.16.25.2:8080 weight=1;server 172.16.25.3:8080 weight=1;} server { listen 80 default_server; listen [::]:80 default_server; server_name 192.168.100.5; root /usr/share/nginx/html; include /etc/nginx/default.d/*.conf;location ~ .*\.jsp$ { proxy_pass http://tomcat; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr;} error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }}# systemctl start nginx# systemctl status nginx# systemctl enable nginx第二步:在172.16.25.2和172.16.25.3上安装两台tomcat(过程省略,建议tomcat重新安装,因为如果前面tomcat安装了jspxcms这个应用的话,会对后面的测试造成影响)tomcat1和tomcat2上把下面的软件包都scp到/usr/local/tomcat/lib/目录下# ls --这些软件包是针对tomcat8的,如果你是tomcat6或者tomcat7你需要自行网上下载asm-3.2.jar msm-kryo-serializer-1.8.1.jarkryo-1.04.jar reflectasm-1.01.jarmemcached-session-manager-1.8.1.jar serializers-0.11.jarmemcached-session-manager-tc8-1.8.1.jar spymemcached-2.11.1.jarminlog-1.2.jar第三步:在tomcat1和tomcat2上操作# vim /usr/local/tomcat/conf/context.xml (在此文件的<Context>和</Context>里面加上下面一段)<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:172.16.25.4:11211" --这里的ip为memcached服务器的IP,如果有多个memcached服务器,用逗号隔开 lockingMode="auto" sticky="false" requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$" sessionBackupAsync= "false" sessionBackupTimeout= "100" copyCollectionsForSerialization="true" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />并把两台tomcat分别启动(如果你先前启动了要重启)# /usr/local/tomcat/bin/shutdown.sh# /usr/local/tomcat/bin/startup.sh# lsof -i:8080第四步:在172.16.25.4上安装并启动memcached# yum install memcached # systemctl start memcached.service # systemctl status memcached.service# systemctl enable memcached.service# lsof -i:11211第五步:我这里nginx,tomcat1,tomcat2是合起来做一个应用,所以它们的家目录里的内容应该是一样的,如何让一个应用内容在它们那里一致?方法1:远程实时rsync同步方法2:共享存储或分布式存储(后面课程会讲,但现在也可以使用nfs来模拟共享存储)在nginx的家目录/usr/share/nginx/html里,并且在tomcat1和tomcat2的家目录/usr/local/tomcat/webapps/ROOT/里建立一个测试文件(如果有nfs做共享存储,则只需要建立一次就可以了)# vim session.jspSessionID:<%=session.getId()%> <BR>SessionIP:<%=request.getServerName()%> <BR>SessionPort:<%=request.getServerPort()%>第六步:确认nginx和tomcat1和tomcat2和memcached都是启动状态,客户端使用firefox来测试测试一:http://192.168.100.5/session.jsp --不断F5刷新,sessionID是不变的elinks -dump http://192.168.100.5/session.jsp --不要使用这种方式来测,这样测试session id是会变的(elinks不能像firefox那样存放session id),但也会存储到memcache中在memcache服务器上进行下面的操作# echo "stats cachedump 3 0" | nc 172.16.25.4 11211 > /tmp/session.txt# cat /tmp/session.txt |head -1--导出的第一行的session ID就等于上面页面刷新时的session id,说明session id确实存放在memcache里ITEM validity:A8F853F36B9931DD5ADF51DFB806A0CF-n1 [20 b; 1442225217 s]============================================================================
阅读全文
0 0
- 搭建java环境\Tomcat安装和基本配置\Tomcat_MSM
- Linux上java环境的搭建,JDK和TOMCAT的安装和配置
- Java环境搭建---JDK+TOMCAT+ECLIPSE下载安装配置
- java环境配置和tomcat环境配置
- java安装环境配置(含jdk和tomcat、myeclipse)
- Java EE应用和开发环境之Tomcat安装配置
- tomcat和java环境配置
- Java 新手环境搭建 - Tomcat 安装
- Linux搭建Java服务器环境-Tomcat安装
- java环境的搭建,myeclipse的安装配置和破解
- CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手册)
- CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手册)
- 在服务器搭建javaweb开发环境--安装配置eclips和tomcat
- java\tomcat\maven\svn环境安装配置
- 安装配置tomcat,java运行环境
- JAVA sdk 环境配置与 Tomcat 安装
- centos7 安装配置 java tomcat 环境
- Java安装配置 tinyos环境搭建基础
- Java设计模式之简单工厂模式
- 字节对齐的方法
- HGDB重建模板数据库的方法(适用于PG)
- 7 局部求和
- 美女头像这么多,他们用大数据告诉你哪个是骗子
- 搭建java环境\Tomcat安装和基本配置\Tomcat_MSM
- Windows中Django安装教程
- C#枚举类型的默认值一定是0说起
- KMP字符匹配
- TCP/IP的开肠破肚(1)
- test
- 谈谈服务治理
- 关于深度优先搜索个人总结
- 如果你没有钱,没有能力,没有人脉,你就这样干!