第一次部署jar包到服务器,阿里云设置安全组后,端口依然无法访问问题

832 阅读3分钟

        初学java,刚好写了一个小项目,在本地下能正常运行,就想着部署到云服务器,前面基本是照着别人的文章操作的,但是中途也遇到了一大堆意料之外的问题,后面各种查阅之后终于成功部署到线上并且可以让人访问。

        因为大部分都是参考文章的,一些细节就不赘述了,只说下遇到的一些问题和简要的步骤:

        1.安装java和mysql环境,因为我的小项目没用到mysql,所以我没搭,一些文章的搭建java环境都是下载对应的java,然后传到服务器再去安装,再去弄配置环境什么的,但是其实大可不必,我用的云服务器系统是cent os,使用命令行远程连接上之后键入 yum install java-1.8.0-openjdk* -y 就行了 ,系统就会自动搭建好环境了。

         2.环境搭建好之后自然需要把jar包传输到远程服务器了,我用的mac,推荐使用FileZilla,把文件上传至 root 目录,然后再输入 java -jar ***.jar 项目就部署上去了(***是你的项目名称),但是这种只是单次的,一旦你关闭命令行,项目也跟着停掉了,如果你想服务器一直运行这项目,可以用以下指令 。

        2.1 创建一个.sh ,指令 vim start.sh

        2.2 插入 java   -jar ***jar 保存

        2.3 给.sh赋予管理员权限 指令 chmod 777 start.sh

        2.4 循环启动.sh 指令 nohup ./start.sh &

在启动之前最好检查下端口是否被占用,指令 netstat -anp | grep 8080 (想查看其它端口替换8080即可),如果有提示,则被占用,无提示未被占用,如果被占用杀死端口即可。杀死端口指令 sudo kill -9 pid(要填入具体的pid),具体的pid可以用指令 sudo lsof -i:8080 查看

       3.服务器要记得开放对应的端口,比如你项目用到了8080端口,在服务器-安全组那里设置即可,具体百度,也可以看下方给出的文档,还有一个就是 可能就算开放了安全组也无法访问到,那可能是防火墙的问题,你可以在命令行里输入指令 curl -i 127.0.0.1:8080/对应路径 对应路径是指你在本地下面能打开的页面,如果在命令行里有返回,但是在网页输入又无法访问,那么基本是防火墙的问题了,也有可能不会遇到这个问题。

补充:

关于打包这块,前面也遇到了一个问题,就是打出来的包无法更改端口,也就是yml文件不生效,在本地是没问题,后面咨询群里的大神,应该下方的打包方式是存在一定问题的,我后面更换了一种打包方式,即使用maven进行打包,即打开maven project,然后点击 lifecycle ,选择package,最后找到对应的包丢到服务器运行即可,不知道路径的同学可以在控制台查看信息,往上拉一点点有给出具体的存放路径的

下方是一些具体的参考链接,文章用以记录

部署jar包到云服务器全流程:blog.csdn.net/Mou_Yang/ar…

mac下idea的打包文章:www.jianshu.com/p/d235f187b…

防火墙文章:www.jianshu.com/p/a2eebf4cd…