在云服务器上部署你的JAVA WEB项目

第一次在阿里云服务器上部署自己的java web项目,从一无所知的小小白到现在略微有一点项目部署经验的小白(hahahaha),这个过程中真的是一路艰辛,各种头疼,各种痛苦。但是,不积小流无以成江海,不积跬步无以至千里,现在每一步看似很难的操作和痛苦的学习过程,都是在为自己通往大神之路打基础做积累。今天就来记录下我在项目部署以来遇到的一些问题。

一、购买域名和服务器

云服务器提供商有很多,可以选择的服务器类型也有很多,我这次使用的是阿里云,之前我也在国外的服务器提供商Vultr那里买过服务器(用来搭SSR),相比之下其实我更加喜欢Vultr的服务,阿里云虽然也很好,但是总是让我感觉用的有点不爽.......

因为这次需要将域名解析在服务器上,为了方便大家访问,所以我买了一个配置很low的阿里云服务器,ICP备案略过不说,阿里云的备案教程很详细。

如果想通过8080端口来访问服务器上的项目,请先在阿里云的控制台中将服务器的安全组中加入如下设置

否则使用    IP:8080  是不可以访问到你的tomcat页面的,8080端口默认是不可以被外界访问的,一定要手动添加安全组规则

二、将项目上传至服务器

windows和Linux的传输工具有很多种,我使用的是WinSCP,远程连接工具我用的是PuTTY,用什么工具其实无所谓,这都只是一种辅助手段,购买完服务器后,第一步就是给服务器装上项目运行的必备环境,JDK、Tomcat、Mysql。

JDK和Tomcat在windows下载完以后,使用WinSCP上传到/usr/java这个目录中(java文件夹是新建的),使用linux命令解压到该目录下,然后配置JAVA_HOME等必备环境,这个很简单就不过多记载。

然后使用你的编译器将项目打包,打包的格式是war,我使用的编译工具是IDEA 2018旗舰版,各种编译器的打包操作都不同,这里就不多说。

项目打包完成后使用传输工具将项目上传到tomcat的webapps目录下

然后在远程连接工具中使用命令将路径切换到 tomcat的bin目录下   cd  /usr/java/tomcat/bin

tomcat的关闭命令是 ./shutdown.sh                     打开命令是./startup.sh                  

如果之前你使用IP:8080测试了tomcat是否安装成功的话,请先使用关闭命令关闭tomcat,中间可能会报错,报拒绝连接的错误,

这个问题我现在也还没真正的解决掉,我一般都是直接杀死tomcat这个进程     (命令ps -ef|grep tomcat),显示了tomcat的进程号以后,使用命令kill -9 "进程号"

tomcat重启后,项目会被解压缩,webapps中会出现项目的文件夹,这个时候你就可以使用IP:8080/项目名来访问项目了

三、直接通过域名来访问项

ICP备案通过以后,每次都要使用域名:8080/项目名来访问项目是不是很烦也很不方便呢,那我们是不是可以通过域名直接来访问我们的项目呢?

先那么切换到tomcat的conf目录下,找到server.xml文件

网上有很多的这种教程会告诉你把端口号改成80,这样就不再需要加上8080了,这样也可以,但是这中间也忽略了一个问题,那就是linux的非root用户是没有权限监听1024以下的端口号的,所以我当时那样改了以后,任然是无法访问项目,甚至tomcat都访问不了,那么我们应该怎么做?

可以使用命令将80端口的访问全部映射到8080这个端口上来

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

在这里我有一个小的建议,先不要将后面的localhost改成你的域名,也不要在Host中加入项目路径,咱们最好一步一步来,先映射端口,映射完以后先测试下域名/项目名是不是能访问到你的项目,如果能,那么就开始下一步,如果不能,就要好好检查一下到底是哪里出了问题。如果按照网上的教程一次性全部配好的话,中间出了问题就很难找,所以我还是建议大家一步步来更改配置

端口映射没有问题的话,将这里的deafulthost改成你的域名

<Engine name="Catalina" defaultHost="www.wangmenghao.top">

再将host中的hostname也改成你的域名,并且加上Context

<Host name="www.wangmenghao.top"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
	<Context path="" docBase="newproject"/>

这基本上就完成了,此时可以通过你的域名来访问你部署的项目了

猜你喜欢

转载自blog.csdn.net/weixin_41047704/article/details/82933532