NSD OPERATION DAY05
1 案例1:安装部署Tomcat服务器
1.1 问题
本案例要求部署Tomcat服务器,具体要求如下:
- 安装部署JDK基础环境
- 安装部署Tomcat服务器
- 创建JSP测试页面
然后客户机访问此Web服务器验证效果:
- 使用火狐浏览器访问Tomcat服务器的8080端口,浏览默认首页
- 使用火狐浏览器访问Tomcat服务器的8080端口,浏览默认测试页面
1.2 方案
使用2台虚拟机,其中一台作为Tomcat服务器(192.168.99.100)、另外一台作为测试用的Linux客户机(192.168.99.5),如图-1所示。
使用RPM安装JDK基础环境
使用源码安装部署Tomcat服务器
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:部署Tomcat服务器软件
1)使用RPM安装JDK环境
- [root@web1 ~]# yum -y install java-1.8.0-openjdk #安装JDK
- [root@web1 ~]# java -version #查看JAVA版本
2)安装Tomcat
- [root@web1 lnmp_soft]# tar -xf apache-tomcat-8.0.30.tar.gz
- [root@web1 lnmp_soft]# mv apache-tomcat-8.0.30 /usr/local/tomcat
- [root@web1 lnmp_soft]# ls /usr/local/tomcat
- bin/ #主程序目录
- webapps/ #页面目录
- conf/ #配置文件目录
- logs/ #日志目录
- temp/ #临时目录
- work/ #自动编译目录
- lib/ #库文件目录
3)启动服务
- [root@web1 ~]# /usr/local/tomcat/bin/startup.sh
4)服务器验证端口信息
- [root@web1 ~]# ss -nutlp |grep java #查看java监听的端口
- tcp 0 0 :::8080 :::* LISTEN 2778/java
- tcp 0 0 :::8009 :::* LISTEN 2778/java
- tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 2778/java
提示:如果检查端口时,8005端口启动非常慢,默认tomcat启动需要从/dev/random读取大量的随机数据,默认该设备生成随机数据的速度很慢,可用使用下面的命令用urandom替换random。
- [root@web1 ~]# mv /dev/random /dev/random.bak
- [root@web1 ~]# ln -s /dev/urandom /dev/random
- [root@web1 ~]# killall java
- [root@web1 ~]# cd /usr/local/tomcat
- [root@web1 tomcat]# bin/startup.sh
- [root@web1 ~]# ss -nutlp |grep java
另外,还可以使用方案二解决:
- [root@web1 ~]# yum install rng-tools
- [root@web1 ~]# systemctl start rngd
- [root@web1 ~]# systemctl enable rngd
5)客户端浏览测试页面
http://192.168.99.100:8080
步骤二:修改Tomcat配置文件
1)创建静态页面
- [root@web1 tomcat]# echo "tomcat-test~~~~" > webapps/ROOT/test01.html
浏览器访问http://192.168.99.100:8080/test01.html
2)测试JSP页面
- [root@web1 ~]# vim /usr/local/tomcat/webapps/ROOT/test02.jsp
- <html>
- <body>
- <center>
- Now time is: <%=new java.util.Date()%>
- </center>
- </body>
- </html>
浏览器访问http://192.168.99.100:8080/test02.jsp
2 案例2:使用Tomcat部署虚拟主机
2.1 问题
沿用练习二,使用Tomcat部署加密虚拟主机,实现以下要求:
- 实现两个基于域名的虚拟主机,域名分别为:www.a.com和 www.b.com
- 访问页面时支持SSL加密通讯
- 每个虚拟主机都拥有独立的访问日志文件
2.2 方案
修改server.xml配置文件,创建www.b.com虚拟主机,顺便修改原有虚拟主机为www.a.com
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:配置服务器虚拟主机
1)修改server.xml配置文件,创建虚拟主机
- [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
- ...
- <Host name="www.b.com" appBase="web_b">
- </Host>
- <Host name="www.a.com" appBase="webapps" unpackWARS="true" autoDeploy="true">
- ...
- ...
- </Host>
2)创建虚拟主机对应的页面根路径并测试
- [root@web1 tomcat]# mkdir -p web_b/ROOT #之后创建b网站的目录
- [root@web1 tomcat]# echo "tomcat-A~~~" > webapps/ROOT/index.html
- [root@web1 tomcat]# echo "tomcat-B~~~" > web_b/ROOT/index.html
- tail -1 /etc/hosts #查看域名解析
- 192.168.99.100 www.a.com www.b.com
- [root@web1 tomcat]# bin/shutdown.sh #关闭tomcat
- [root@web1 tomcat]# bin/startup.sh #开启
- [root@web1 tomcat]# curl www.a.com:8080 #测试
- tomcat-A~~~
- [root@web1 tomcat]# curl www.b.com:8080
- tomcat-B~~~
3)查看虚拟主机www.a.com的配置
unpackWARs="true" #自动解war包
autoDeploy="true" #自动更新开发工程师编写的网站功能
- [root@proxy tomcat]# yum -y install java-1.8.0-openjdk-devel #安装可以制作war包的工具
- [root@proxy tomcat]# jar -cf a.war /var/log #之后可以使用jar命令打war包
- [root@proxy tomcat]# cp a.war webapps #将war包放入虚拟主机的网页目录
- [root@proxy tomcat]# ls webapps #检查,可以看到已经自动解开,如果无效可以尝试重启tomcat
3 tomcat访问路径与页面位置
1)测试1
- [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
- ...
- <Host name="www.b.com" appBase="web_b">
- <Context path="" docBase="" />
- </Host>
- ...
- echo "web_b/ROOT/index.html" > web_b/ROOT/index.html #默认页面路径
- echo "web_b/index.html" > web_b/index.html #创建素材,定义新路径
- curl www.b.com:8080 #测试可以看到的是默认的页面路径
- web_b/ROOT/index.html
- 之后重启tomcat
- curl www.b.com:8080 #重启后测试可以看到新路径
- web_b/index.html
2)测试2
- [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
- ...
- <Host name="www.b.com" appBase="web_b">
- <Context path="" docBase="abc" /> #修改成abc
- </Host>
- ...
- mkdir web_b/abc #创建测试目录
- echo "web_b/abc/index.html" > web_b/abc/index.html #测试页面
- 重启tomcat
- [root@proxy tomcat]# curl www.b.com:8080 #查看,见到新路径
- web_b/abc/index.html
3)测试3
- [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
- ...
- <Host name="www.b.com" appBase="web_b">
- <Context path="" docBase="/abc" /> #修改成/abc
- </Host>
- ...
- mkdir /abc #创建测试目录
- echo "/abc/index.html" > /abc/index.html #创建测试文件
- 重启tomcat
- [root@proxy tomcat]# curl www.b.com:8080 #得到新路径
- /abc/index.html
4)测试4
- [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
- ...
- <Host name="www.b.com" appBase="web_b>
- <Context path="/test" docBase="/abc" /> #path后面添加内容可以匹配用户访问路径,当用户访问www.b.com:8080/test/时,看到的是/abc的内容,如果访问www.b.com:8080就看到web_b/ROOT的内容
- </Host>
- 重启tomcat
- [root@proxy tomcat]# curl www.b.com:8080/test/
- /abc/index.html
- [root@proxy tomcat]# curl www.b.com:8080
- web_b/ROOT/index.html
5)测试5
- [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
- ...
- <Host name="www.b.com" appBase="web_b">
- <Context path="/test" docBase="abc" /> #将/abc改成abc当用户访问www.b.com:8080/test/时,可以看到web_b/abc里的内容当用户访问www.b.com:8080时就看到web_b/ROOT的内容
- 重启tomcat
- [root@proxy tomcat]# curl www.b.com:8080/test/
- web_b/abc/index.html
- [root@proxy tomcat]# curl www.b.com:8080
- web_b/ROOT/index.html
步骤四:配置Tomcat支持SSL加密网站
1)创建加密用的私钥和证书文件
- [root@web1 ~]# keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore #提示输入密码为:123456
- #-genkeypair 生成密钥对
- #-alias tomcat 密钥别名
- #-keyalg RSA 定义密钥算法为RSA算法
- #-keystore 定义密钥文件存储在:/usr/local/tomcat/keystore
2)再次修改server.xml配置文件,创建支持加密连接的Connector
- [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
- ...
- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
- maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS"
- keystoreFile="/usr/local/tomcat/keystore" keystorePass="123456"/>
- ...
- #备注,默认这段Connector被注释掉了,打开注释,添加密钥信息即可
3)重启Tomcat服务器
- [root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh
- [root@web1 ~]# /usr/local/tomcat/bin/startup.sh
4)客户端设置host文件,并浏览测试页面进行测试(proxy可以充当客户端角色)
- [root@proxy ~]# vim /etc/hosts
- … …
- 192.168.99.100 www.a.com www.b.com
分别访问测试
https://www.a.com:8443/
https://www.b.com:8443/
步骤五:配置Tomcat日志
1)为www.b.com虚拟主机开启日志
- [root@web1 ~]# vim /usr/local/tomcat/conf/server.xml
- .. ..
- <Host name="www.b.com" appBase="web_b" >
- ...
- #从默认localhost虚拟主机中把Valve这段复制过来,适当修改下即可
- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
- prefix="www-b-com" suffix=".log"
- pattern="%h %l %u %t "%r" %s %b" />
- </Host>
2)重启Tomcat服务器
- [root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh
- [root@web1 ~]# /usr/local/tomcat/bin/startup.sh
3)查看服务器日志文件
- [root@web1 ~]# ls /usr/local/tomcat/logs/
4 案例3:使用Maven部署网站系统
4.1 问题
通过安装配置Maven,实现如下目标:
- 配置镜像地址
- 打包并上线网站项目
4.2 方案
通过tar包安装Maven
- 释放tar包,拷贝到/usr/local目录
- 安装并运行数据库
- 打包网站项目,之后利用tomcat上线该网站
4.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:安装maven工具,以及java环境
将三个文件传入虚拟机root的家目录,原地释放
apache-maven-3.6.3-bin.tar.gz #maven工具包
cms.tar.gz #网站项目
m2.tar.gz #依赖程序,释放之后是隐藏目录.m2
1)释放tar包,并拷贝到指定目录
- [root@web1 ~]# tar -xf apache-maven-3.6.3-bin.tar.gz
- [root@web1 ~]# mv apache-maven-3.6.3 /usr/local/maven
2)安装java依赖包
- [root@web1 ~]# yum -y install java-1.8.0-openjdk
- [root@web1 ~]# yum -y install java-devel
3)修改镜像地址,在第158行下添加
- [root@web1 ~]# vim /usr/local/maven/conf/settings.xml
- <mirror>
- <id>nexus-aliyun</id>
- <mirrorOf>*</mirrorOf>
- <name>Nexus aliyun</name>
- <url>http://maven.aliyun.com/nexus/content/groups/public</url>
- </mirror>
步骤二:配置数据库并打包项目
1)配置数据库
- [root@web1 ~]# yum install -y mariadb-server
- [root@web1 ~]# systemctl start mariadb
- [root@web1 ~]# cd CMS/
- [root@web1 CMS]# cp src/main/resources/shishuocms.properties . #拷贝网站数据库配置文件到当前目录,该文件定义了数据的用户名和密码等信息
- [root@web1 CMS]# mysql -uroot < sql/install.sql #导入网站相关数据库文件
- Enter password: 直接回车
- [root@web1 CMS]# mysqladmin password #修改数据库密码
- New password: #接下来输入12345678
- Confirm new password: #在输入一次12345678
如果数据库密码输入错误
- mysqladmin password -uroot -p #改密码,先输入旧密码,然后输入两次新密码
如果数据库密码忘记
- systemctl stop mariadb #停服务
- yum -y remove mariadb-server #删除
- rm -rf /var/lib/mysql/ #删除数据库文件,这样密码就没了
- yum -y install mariadb-server #重装
- systemctl start mariadb #启动数据库
2)打包项目
- [root@web1 CMS]# /usr/local/maven/bin/mvn clean package #按照之前定义的
- 公网服务器地址、数据库配置等内容打包项目,注意该命令要在CMS目录进行
步骤三:上线测试
- cp ~/lnmp_soft/apache-tomcat-8.0.30/conf/server.xml /usr/local/tomcat/conf/
- cp: 是否覆盖 "/usr/local/tomcat/conf/server.xml"? y #把tomcat的配置
- 文件恢复默认
- 重启tomcat
- rm -rf /usr/local/tomcat/webapps/ROOT #删除原有默认页面目录
- cp target/shishuocms-2.0.1.war /usr/local/tomcat/webapps/ROOT.war #将新项目移动到tomcat中,然后会自动解包,然后真机打开浏览器访问192.168.99.100:8080看到“师说”页面则成功