使用tomcat搭建网站服务

1
2
3
4
tar  -xf  apache-tomcat-8.0.30.tar.gz     //释放tomcat软件包
cp -r apache-tomcat-8.0.30 /usr/local/tomcat
cd /usr/local/tomcat/
yum -y install java-1.8.0-openjdk //安装java程序运行环境包
  • tomcat目录:bin 存放主程序、log 存放日志、conf 配置文件、webapps 存放网站页面、lib 存放库文件、work 存放编译后页面文件
1
2
bin/startup.sh  //开启服务
netstat -ntulp | grep java //检查如果有8005、8009、8080端口则正常
  • 由于tomcat服务开启时需要大量随机字符,但系统中随机字符不够多的话会导致tomcat服务启动失败

解决方案1:

1
2
mv /dev/random /dev/random.bak  //将random改名
ln -s /dev/urandom /dev/random //用urandom替换random

解决方案2:

1
2
3
4
5
yum -y install rng-tools
systemctl start rngd
killall java //杀掉所有java程序
bin/startup.sh //重新开启服务
netstat -ntulp | grep java //检查如果有8005、8009、8080端口则正常
  • 测试静态页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
cd  /usr/local/tomcat
echo "tomcat-test~~~~" > webapps/ROOT/test01.html
http://192.168.99.5:8080/test01.html 火狐访问测试

测试动态页面
vim webapps/ROOT/test02.jsp
<html>
<body>
<center>
Now time is: <%=new java.util.Date()%>
</center>
</body>
</html>
http://192.168.99.5:8080/test02.jsp 火狐访问测试

使用tomcat创建虚拟主机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
vim conf/server.xml  //打开配置文件在122行添加虚拟主机配置
<Host name="www.b.com" appBase="web_b"> //这里顺便把下面的默认的
虚拟主机的name="localhost"改成 name="www.a.com"
</Host>

mkdir -p web_b/ROOT //之后创建b网站的目录
echo "tomcat-A~~~" > webapps/ROOT/index.html
echo "tomcat-B~~~" > web_b/ROOT/index.html
tail -1 /etc/hosts //查看域名解析
192.168.99.5 www.a.com www.b.com
bin/shutdown.sh //关闭tomcat
bin/startup.sh //开启

查看虚拟主机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

tomcat访问路径与页面位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
测试 1:
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<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:
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<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:
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<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:
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<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:
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<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

给新创建的虚拟主机添加日志功能

1
2
3
4
5
6
7
8
9
10
11
12
vim conf/server.xml   //修改配置文件,复制最后一页默认虚拟主机的日志配置
其中prefix是日志名称,suffix是日志后缀名
<Host name="www.b.com" appBase="test01"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="abc" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="www_b_com" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
配置好之后开启或者重启tomcat服务
curl www.b.com:8080 //访问一次网站,可以产生日志记录
[root@proxy tomcat]# ls logs/ 查看日志目录可以看到b网站的日志名称

通过maven构建项目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
maven是一个项目管理工具
apache-maven-3.6.3-bin.tar.gz //maven工具包
cms.tar.gz //网站项目,代码已经都编写完毕
m2.tar.gz //依赖程序,释放之后是隐藏目录.m2
如果有软件包无法释放可以尝试安装bzip2软件包

2,配置maven
mv apache-maven-3.6.3 /usr/local/maven //将maven移动到/usr/local下
yum -y install java-1.8.0-openjdk
yum -y install java-devel
vim /usr/local/maven/conf/settings.xml //打开配置文件在第158下面添加
公网服务器地址
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

3,配置数据库
yum -y install mariadb mariadb-server
systemctl start mariadb
[root@proxy ~]# cd ~/CMS/
cp src/main/resources/shishuocms.properties . //拷贝网站数据库
配置文件到当前目录,该文件定义了数据的用户名和密码等信息
mysql -uroot -p < sql/install.sql //导入网站相关数据库文件
Enter password: 直接回车
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 //启动数据库
-------------------------------------------------------------

4,利用maven打包项目
/usr/local/maven/bin/mvn clean package //按照之前定义的公网服务器地址、数据库配置等内容打包项目,注意该命令要在CMS目录进行
rm -rf /usr/local/tomcat/webapps/ROOT //删除原有默认页面目录
cp target/shishuocms-2.0.1.war /usr/local/tomcat/webapps/ROOT.war
//将新项目移动到tomcat中,然后会自动解包
打开浏览器 访问 www.a.com:8080 看到页面则成功

使用tomcat搭建https网站

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
cp  -r  apache-tomcat-8.0.30  /usr/local/tomcat
yum -y install java-1.8.0-openjdk
cd /usr/local/tomcat/
bin/startup.sh //开启服务
netstat -ntulp | grep java //检查端口,需要看到8005、8009、8080端口
vim conf/server.xml //修改配置文件,打开找到85行,将前后的注释删除 <!-- -->
<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" /> //这里添加keystoreFile(指定公钥私钥文件)和keystorePass(公钥私钥文件密码)
keytool -genkeypair -alias tomcat -keyalg RSA
-keystore /usr/local/tomcat/keystore //创建密钥对,别名是tomcat,加密算法是RSA,最后是存储位置
输入密钥库口令: 输入123456
再次输入新口令: 再次输入123456
您的名字与姓氏是什么?
[Unknown]: dc
。。。。。
CN=dc, OU=dc, O=dc, L=dc, ST=dc, C=dc是否正确?
[否]: y
输入 <tomcat> 的密钥口令
(如果和密钥库口令相同, 按回车): 直接回车
Warning:
ls //检查下/usr/local/tomcat下面会产生keystore则成功

bin/shutdown.sh //重启tomcat
bin/startup.sh
netstat -ntulp | grep java //检查可以看到8443端口
echo "tomcat-https~~" > webapps/ROOT/index.html //准备测试页面
curl -k https://192.168.99.5:8443 //访问安全加密网站
更新于

请我喝[茶]~( ̄▽ ̄)~*

Chen 微信支付

微信支付

Chen 支付宝

支付宝

Chen 贝宝

贝宝