云服务器部署Tomcat项目全过程
前言之前学习了Java Web,能用eclipse在本地直接映射运行Tomcat,十分方便,这篇博客主要是记录,用eclipse写好的WEB项目,如果部署到云服务器上,让大家看到。有关Java web项目的学习,可以看我这两篇博客:WEB编程学习之Windows安装运行TomcatWEB编程学习之Eclipse编译JSP本博客原创,转载请注明!本地工作WAR文件WAR文件是一个Java Web的打
前言
之前学习了Java Web,能用eclipse在本地直接映射运行Tomcat,十分方便,这篇博客主要是记录,用eclipse写好的WEB项目,如果部署到云服务器上,让大家看到。有关Java web项目的学习,可以看我这两篇博客:
WEB编程学习之Windows安装运行Tomcat
WEB编程学习之Eclipse编译JSP
本博客原创,转载请注明!
本地工作
WAR文件
WAR文件是一个Java Web的打包版,Tomcat可以直接解包WAR文件生成WEB项目,很方便。
当我们在eclipse写好项目之后,直接导出WAR文件。
在项目根目录下,右键–Export
–WAR file
,然后选择保存位置就行了。
这个WAR文件到时候直接放在Tomcat的webapps
文件夹下就行了。
云服务器
安装Java
Tomcat需要Java环境,所以要给服务器安装JDK,云服务器我用的是阿里云ECS,安装的系统是Ubuntu 20.04版本。
有关Ubuntu安装Java的教程可以参见我的这篇博客:Linux学习之Ubuntu安装Java
要补充的是:最好选择方法二安装JDK,方便维护。
安装完Java之后,因为后边还需要用到mysql,把MySQL的jar包放入Java中,将mysql-connector-java-5.1.8-bin.jar
文件放在,Java根路径/jre/lib/ext中,关于这个jar文件,网上有很多,我这里就不放出来了。
安装MySQL
这个安装Mysql过程很曲折,花费了我很长的时间去研究,主要原因是新版的MySQL安装完成之后不用设置密码,它会把Ubuntu的root用户权限赋给MySQL的root权限,就不用再输入密码,虽然方便了很多,但是JDBC做用户验证的时候就比较麻烦了,需要输入密码,查了很多资料,花了很长时间,很多方法都没用,最后终于找到一篇有效的博客:在Ubuntu20.04上安装MySQL8.0及正确配置。我这里就说一下过程:
安装MySQL
sudo apt update
sudo apt install mysql-server
第一个是更新源,第二个是安装MySQL,sudo这个指令如果是服务器是用root用户登陆的,就不需要sudo。
安装好之后,输入
systemctl status mysql
输出的结果是Active: active (running)
就说明MySQL安装成功了。
设置密码
这一步花了真的很长时间,网上很多资料都无效,再次感谢上面的那个博客。
在命令行输入
mysql
发现真的不需要密码就可以进入mysql了,然后我们来设置一下root的密码,注意分号
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root的密码';
root的密码就是要设置的密码,输入完之后,看到
Query OK, 0 rows affected (0.01 sec)
就说明可以了,之后我们进入MySQL需要用
mysql -u root -p
命令进入MySQL。然后就可以建立数据库啊,建立表格啊啥的。
安装Tomcat
部署Tomcat
这个其实比较简单了,在我上面的博客里有,这里就简单的说一下过程就行了,因为我的eclipse仅支持的Tomcat最高版本是9.0,我这里就下载9.0版本的了。
先去官网踩点获取网站:Apache Tomcat
然后找到tar.gz版本的,右键–复制链接地址
然后登录服务器,在命令行输入wget 复制的下载地址
,对于我自己就是输入这样的:
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.46/bin/apache-tomcat-9.0.46.tar.gz
如果速度太慢,可以在Windows下载好之后,然后用WinSCP上传到服务器中就行了。
下载好后,输入
sudo tar -xvaf apache-tomcat-9.0.46.tar.gz
解压tar.gz文件,然后进入tomcat根文件,进入bin
然后运行startup.sh
文件就行了,比如我的就是
cd apache-tomcat-9.0.46/bin/
./startup.sh
然后没有报错就行了。
访问网站
首先先要在服务器的安全组中开放8080端口:
进入阿里云控制台–(左侧)安全组–然后选择实例–(中间)手动添加–然后开放8080端口就行了。
对了,这里还要再提一嘴,最好也开放80端口和443端口,一个是HTTP的端口,一个是HTTPS端口,方便之后的网站访问。
开放之后,我们在本地的浏览器中输入http://公网ip:8080
或者是http://域名:8080
,如果出现了Tomcat的默认界面就成功了。
部署WAR文件
恭喜,到了现在,你已经完成了一大半了,让我们来完成之后的任务。
我们直接将WAR文件放在Tomcat根目录的webapps
文件夹下。
然后还需要将tomcat先关闭,然后再开启
cd apache-tomcat-9.0.46/bin/
./shutdown.sh
./startup.sh
开启成功之后,在等一会会,然后我们进入webapps
文件下,就发现WAR文件被Tomcat解包了。
然后我们就可以访问了,输入http://公网ip:8080/项目名/初始界面
。
例如我上面的项目就是http://公网ip:8080/love/index.html
如果看到了自己的网站,那恭喜,你现在已经成功了,博客后边的只是一些优化。
进阶部署
设置默认界面
如果我们希望,我们能通过http://公网ip:8080
或者http://域名:8080
直接访问我们的网站,就需要配置一下了。
要修改的文件有两个:
web.xml
第一个是web项目的web.xml
一般就是在项目根目录下的WEB-INF
目录下,在<web-app>
标签之中,添加内容
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
就是在之前把这段代码加入就行了。主要是用来设置项目的欢迎页。我的项目的欢迎页是index.html
,如果你的是xx.html
就可以修改<welcome-file>xx.html</welcome-file>
。
server.xml
这个是Tomcat的配置文件之一,文件位置是 Tomcat根目录/conf下,打开它
在Host标签下,加入这样的一句话
<Context path="" docBase="项目路径" debug="0"/>
path是网站的访问地址,我这里留空,docBase是项目路径,推荐用绝对路径
然后还需要将tomcat先关闭,然后再开启
cd apache-tomcat-9.0.46/bin/
./shutdown.sh
./startup.sh
然后就可以用http://公网ip:8080
或者http://域名:8080
直接访问我们的网站了。
部署证书
这个是卡我时间最长的,很麻烦,而且网上教程也有些乱,我这里就简单的梳理下过程
我已经购买了域名
部署证书的作用是用https访问我们的网站,如果不安装证书,就是用的http,这样浏览器会警告该网站不安全。
首先申请证书,因为我的服务器是阿里云的,就去阿里云平台搜索SSL证书
左侧SSL证书,中间选择免费证书。
然后就按照它的提示一步一步部署就行了,最后申请通过就可以下载证书了,下载的时候证书选择Tomcat的,解压之后,是一个PFX后缀的证书和一个txt后缀的密码。关于如何安装阿里云给了详细的过程:
安装PFX格式证书
简述一下过程:
(1).开启443端口
这个上面部署Tomcat部分已经说过,在安全组中开启80端口和443端口
(2).别名设置
因为Tomcat 9强制要求证书别名设置为tomcat,我们需要对下载的证书做一些操作,
keytool -changealias -keystore 证书的名字.pfx -alias alias -destalias tomcat
用cmd打开证书路径,然后输入上面的代码,然后它会提示输入密钥库口令,然后打开和证书一起的被解压缩出来的pfx-password.txt
文件,里边就是密码,输入密码的时候,密码是不可见的,所以直接输就行了,输入的时候cmd不会显示密码,输完直接回车就行了。
(3).部署证书
准备工作基本做完,然后可以把证书上传到服务器中,我就把证书放在在Tomcat根目录下conf文件夹中。
然后配置server.xml
文件,打开 Tomcat安装目录/conf/server.xml
然后找到Connector标签,按照如下更改
keystoreFile
是证书所在的绝对路径,keystorePass
是txt文件中的密钥,其余基本都是一样的
<Connector port="443" #port属性根据实际情况修改(https默认端口为443)。如果使用其他端口号,则您需要使用https://yourdomain:port的方式来访问您的网站。
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="Tomcat安装目录/conf/证书名字.pfx" #证书名称前需加上证书的绝对路径,请使用您证书的文件名替换domain name。
keystoreType="PKCS12"
keystorePass="证书密码" #请替换为密码文件pfx-password.txt中的内容。
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
例如下图:
部署完成之后,重启Tomcat就行了。
如果你能通过https://域名
直接访问成功了,那么恭喜你,你成功了!!!
如果你没有成功,可以把所有文件删除,然后重来一遍,我就是最开始的一遍没成功,然后删了,按照流程重新来过就成功了。
小结
过程极其复杂,综合了云服务器、Linux、MySQL、Tomcat、Java等等知识,不过之前我用宝塔+wordpress直接生成了一个模板博客网站,用了很多现成的插件,很方便,但是如果想自己掌控一切,自己写一个web程序也是很有意思的一件事。=w=
更多推荐
所有评论(0)