首先列举一下我们需要准备的材料:
1.一个开发好的JavaWeb项目
2.一个云服务器(阿里和腾讯的都行,如果是学生还有优惠。纯新手的话个人推荐用Windows系统。当然如果有Linux系统使用经验的用Linux更好。因为Linux比Windows更安全些,而且还有更多的好处可以自行去百度。)
3.在自己的云服务器上下载个Tomcat并配置好jdk及环境变量(这里我不再赘述tomcat配置教程,别的博主已经写过好多了,可以自行去查阅。)
4.如果你的项目运行需要其他支撑例如数据库,这些都要提前在你的云服务器上配置好。
5.如果有域名就更好了,其实域名也不贵可以买个两年的玩玩。
在tomcat上部署Javaweb有多种方式:
- 如果项目已经打包成war包,我们只需将war包丢进D:\********\apache-tomcat-7.0.106\webapps 目录下,找到D:\**********\apache-tomcat-7.0.106\bin目录下的startup.bat(windows系统运行这个;Linux系统运行后缀名为 .sh 的文件),启动服务器后tomcat会自行把这个解压并运行。这种方法最省事儿,优先级处于中等。
- 如果项目没有打包我们可以通过配置conf目录下的service.xml文件找到下面图片位置(原本是这样的
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
- 为了外网能够访问,我们把这个文件中的所有localhost全部替换成你的服务器外网IP或者你的域名(前提是你的域名得和你这个服务器的外网IP解析在一块,一般解析记录类型为A,主机记录为www(这里是啥域名前面就写啥 网络常识),记录值为你服务器外网IP,别的没什么改的了)替换时候注意点一个一个看着,建议手动替换,别看都不看全给替换了。
然后我上图标红框的是需要自己手动添加的,doBase里写你项目的路径,可以写绝对路径也可以写相对路径(相对于webapps这个目录)。path=" " 里是你外网访问时的虚拟路径(举个例子:假如你的项目在C:\tomcat\apache-tomcat-9.0.39\webapps\test这个目录,此时对应www.abc.com,如果你path里设置path="/ok",那么你外网通过 www.abc.com/ok 就能访问这个资源。看自己需求设置)
然后就可以运行tomcat了。这种设置方式优先级是最高的,也是非常灵活的。 - 还有一种方式我值得说一下,也是一种友好的方法:
假如你的web项目是用IntelliJ IDEA开发的,开发完项目结构大致是这样子
web下是你的html页面等等,…\out\production\test下是已经编译好的class文件
我们可以先将tomcat中的 C:\tomcat\apache-tomcat-9.0.39\webapps\ROOT目录下的文件清空,把你项目中web目录下的所有文件拷贝进去,打开此时的WEB-INF目录创建一个classes文件夹,将…\out\production\test中所有的文件拷贝进去。注意你的首页名是否为index.html,如果不是请在conf目录中的web.xml文件最后的 welcome-list-file 设置你的首页。最后按照方式二设置一下外网访问name就可以了。此时就可以启动tomcat了
这种方式不用在service.xml文件中设置context属性,对路径搞不清楚的小伙伴非常友好。这种方式相对简单准确一般不会产生错误。优先级也是最低的。
云服务器设置
1.配置端口
你的服务器可以通过外网直接访问最重要的是要打开80端口。
首先在tomcat上设置使用80端口而不是8080。还是打开service.xml文件,替换所有的8080为80、保存。
然后在你的云服务器上设置入站规则。步骤:打开防火墙,打开高级设置,点击入站规则,新建规则:
下一步直到完成就可以了。
2.设置安全组
登录你服务器官网,创建一个安全组如图所示:
3.域名解析
上面我简单说过了,比较简单,想更深入了解的话自行百度。
最后这就算大功告成了
注意
1.tomcat打开后不要关闭窗口,关闭窗口就相当于关闭了服务器,只要你还想让项目一直运行就要保持打开。
2.如果你不想让你的项目继续运行了,先把tomcat关闭,这种是最直接、最快生效的。如果你仅把域名解析关闭了,他不会立刻生效,一般需要等待二十分钟才能真正关闭。
3.根据区域或时间的不同,会需要你进行网站备案,如果出现这种情况希望大家不要害怕如实填写,积极配合,做一个遵纪守法的好公民,为构建健康绿色的网络环境贡献出自己的一份力量。