基于阿里云cetos7.4的后端配置。在此记录一下。
一、安装mysql
之前已经讲过,详见,注意要在阿里云的安全组中打开3306端口,否则无法远程连接。
二、安装redis
1.在centOS里通过wget下载redis
1 | wget http://download.redis.io/releases/redis-4.0.9.tar.gz //版本去redis官网查看最新即可 |
2.在/usr/local里面创建redis目录(这个是安装目录,自己随意放)
1 | cd /usr/local |
3.解压到创建的目录
1 | cd ~ |
已解压成功
4.进入目录编译一下,用make命令编译一下
1 | cd /usr/local/redis/redis-4.0.9 |
注意:make命令执行完成编译后,会在src目录下生成6个可执行文件,
分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-rdb、redis-sentinel。
5.编译生成的可执行文件拷贝到/usr/local/bin目录下
这一步是为了后期可以直接使用命令,
1 | cd /usr/local/redis/redis-4.0.9/src |
6.进入redis-4.0.9执行安装命令make install
1 | cd ../ |
7.执行基本配置
1 | ./utils/install_server.sh |
一阵回车就可以了,红圈就是默认配置的路径!!!
8.查看开机启动列表
1 | chkconfig --list |
9.开启关闭命令
开启Redis服务操作通过/etc/init.d/redis_6379 start命令,也可通过(service redis_6379 start);
关闭Redis服务操作通过/etc/init.d/redis_6379 stop命令,也可通过(service redis_6379 stop);
10.远程登陆redis
1 | cd /etc/redis |
编辑 6379.conf,(黑底蓝字,眼要瞎了)
1 | vim 6379.conf |
a.在bind 127.0.0.1前加“#”将其注释掉 ;
b.默认为保护模式,把 protected-mode yes 改为 protected-mode no
c.默认为不守护进程模式,把daemonize no 改为daemonize yes
d.将 requirepass foobared前的“#”去掉,密码改为你想要设置的密码 (我这里没有设置)
11.开放端口
同样,去阿里云安全组开放6379端口。
12.补充
如果上述设置了密码,在服务器使用关闭命令会出现(error) NOAUTH Authentication required.
错误。 这是由于配置了密码以后,关闭的时候没有密码,所以会关闭不了。找到/etc/init.d/redis_6379文件,修改一下代码
1 | $CLIEXEC -a "password" -p $REDISPORT shutdown |
然后就可以运行service redis_6379 stop关闭redis了。
三、安装JDK
之前已经讲过,详见。
四、springboot项目打包
1.打开端口
打包前确认工程中指定的端口在服务器在未被占用, 并确保该端口已经添加到阿里云安全组中 。
2.注意更改数据源
确保mysql、redis等 数据源连接参数正确,开发时若使用的是本地数据库,那在打包前将数据库连接参数修改为目标数据库。
3.修改pom.xml
1 | <properties> |
如上,添加一行,否则打包时会自动进行测试,由于更换了数据源所以无法通过测试,打包失败。
4.打包
5.运行
我这里传到了home文件夹下
1 | cd home |
运行没有问题。
6.打开防火墙
虽然运行没有问题,但是发现app端以及postman都无法访问,均显示超时连接,最后发现需要打开防火墙的8081端口,同mysql打开3306端口,戳。
7.改为后台运行
java -jar 自己的springboot项目.jar:执行springboot的项目,如果单单只执行该命令,linux只会短暂的运行该项目,当退出控制台后会自动关闭该项目。
首先需要进到自己springboot项目的根目录,然后执行如下linux命令
1 | nohup java -jar 自己的springboot项目.jar >日志文件名.log 2>&1 & |
命令详解:
nohup:不挂断地运行命令,退出帐户之后继续运行相应的进程。
日志文件名.log:是nohup把command的输出重定向到当前目录的指定的“日志文件名.log”文件中,即输出内容不打印到屏幕上,而是输出到”日志文件名.log”文件中。不指定文件名会在当前目录创建nohup.out,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
2>&1:2就是标准错误,1是标准输出,该命令相当于把标准错误重定向到标准输出么。这里&相当于标准错误等效于标准输出,即把标准错误和标准输出同时输出到指定的“日志文件名.log”文件中。
8.停止服务
控制台输入
1 | jps 或者 ps -ef | grep 包名 |
找到刚才运行的进程id,输入下面的命令关闭进程
1 | kill -9 进程id |
9.生产环境部署
生产linux服务器下,可以编写统一脚本管理启动重启:
单一脚本:
在自定义目录创建 wss.sh 脚本,编辑内容如下。
1 | !/bin/bash |
注意在start()方法中根据自己情况修改启动命令,之后就可以通过 wss.sh start | stop | restart 实现启动,停止,重启操作了。
补充下sh xxx.sh与./xxx.sh区别
sh xxx.sh 是不需要有执行权限
./xxx.sh 是需要有执行权限的,可以通过 chmod +x xxx.sh
赋予权限
三个脚本:
1 | 1.启动 脚本 start.sh 2.停止脚本 stop.sh 3.重启脚本 restart.sh |
启动之前先授权一下 : chmod a+x 文件.sh
,以后执行脚本使用./start|stop|restart.sh
即可。
启动服务脚本:vi start.sh
1 | #!/bin/bash |
停止服务脚本:vi stop.sh
1 | #!/bin/bash |
停止脚本的流程就是,通过ps查找到该项目进程id,然后kill掉。
重启脚本:vi restart.sh
1 | #!/bin/bash |
重启脚本流程好理解,依次调用停止,启动即可。
之后还可以利用这三个脚本文件设置开机自启。
五、开放udp端口
在阿里云安全组以及防火墙都要开放端口,注意要开放udp协议,不是tcp。
注:转载文章请注明出处,谢谢~