介绍:
我是一名就读软件工程专业的大二的学生,近期,在开发实验室交付的小程序的任务中负责后端开发,前端的同学想要提前拿到接口,用于测试前端项目,正在这时候我了解到了阿里云的高校学生免费算力计划,在经过了一个入门小实验和测试后,很快便取得了第一个自己的服务器,使用两周后体验良好,因此来续计划啦。
使用攻略:
首先呢,作为一台服务器,肯定是要安装java,mysql,maven等等许多东西,一般来说这些东西都习惯放在/usr/local/目录下,安装完成后,记得再去/etc/profile编辑一下环境变量,并source刷新一下。
为了能让前端的同学一直能访问到项目后端接口,最简便的方法是将项目打包为jar包后(由于是Spring Boot项目,所以Tomcat也自动打包了),传到服务器上,利用nohup命令让项目jar包持续运行。阿里云的服务器很稳,使用的这两周里从来没有出现过前端同学向我反馈后端连接不上的问题。
为了更详细的说明如何配置,下面的内容是摘自我的博客里我当时做的笔记
Java MySQL这些环境的配置就不说了 SpringBoot导够那些依赖之后,IDEA右边那个maven选项卡在Lifecircle里运行package,会生成一个jar包,传到linux里喜欢的地方
(顺便要是部署的时候想关闭程序,输ps aux就能列出进程和进程号;不过如果是简单的控制台java -jar的话Ctrl + C就行)
ps -ef|grep xxx.jar,或者像下面这样,列出所有java进程
然后kill -9 进程号
方法1:
1.使用命令 firewall-cmd --state查看防火墙状态。得到结果是running或者not running 2.在running 状态下,向firewall 添加需要开放的端口: firewall-cmd --permanent --zone=public --add-port=8080/tcp 永久添加端口,去掉 --permanent 则表示临时 3.firewall-cmd --reload 加载配置,使得修改有效。 4.firewall-cmd --permanent --zone=public --list-ports 查看开启的端口里是否成功添加
p.s.CentOS7以下有专门的防火墙操作命令(我的那个阿里云也是)
开启防火墙:systemctl start firewalld.service 关闭防火墙:systemctl stop firewalld.service 开机自动启动: systemctl enable firewalld.service 关闭开机自动启动: systemctl disable firewalld.service 查看防火墙状态:systemctl status firewalld
但是发现还是没法从外界访问服务器ip地址:端口号
然后想起来,哦,阿里云那边的安全组放行我还没配来着
哟西!!!
方法2:(次选)
首先确保有iptables
yum install iptables-services
然后开放对应的端口
sample configuration for iptables service
you can edit this manually or use system-config-firewall
please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -P tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -P tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
重启防火墙
systemctl restart iptables
但是报错了Orz:
[root@iZ0jl38ljn8gs6phcrziyjZ waimai]# systemctl restart iptables
Job for iptables.service failed because the control process exited with error code.
See "systemctl status iptables.service" and "journalctl -xe" for details.
搜了半天发现是和原有的firewalld冲突了好像:
service iptables save
systemctl stop firewalld
systemctl disable firewalld
systemctl start iptables
systemctl status iptables
systemctl enable iptables
(注意啦,这样一来/etc/sysconfig/iptables会重置,记得重写一下)
预防:想要改回firewalld防火墙用下面命令
1)开机自动启动firewalld防火墙
systemctl enable firewalld.service
2)关闭开机制动启动
systemctl disable firewalld.service
3)查看状态
systemctl status firewalld
4)启用防火墙firewalld
systemctl start firewalld.service
配置后台运行
nohup java -jar jarName-0.0.1-SNAPSHOT.jar >msg.log 2>&1 &
参考这里
收获总结:
两周的高校学生免费算力的使用体验非常好,这次续两个月之后,我大概率还会续签;拥有一台服务器,真的能对于高校学生的学习起到很大的帮助,为阿里云的精神点赞👍