作为一名后端Java程序员,小哈是极力推荐大家拥有一台属于自己的云服务器的,什么?有些童鞋肯定说:我用虚拟机玩得很转,花那冤枉钱干啥玩意!
为什么要用云服务器
使用云服务器好处大致如下:
更好的了解项目是如何在线上环境是如何运行的?(可以说,国内大部分中小企业的服务都跑在云上,有钱的公司,自建机房的,当小哈没说~);
部署相关测试环境非常方便,比如 Redis, Mysql, MongDB, Elasticsearch 这些,Linux 环境上部署肯定比 Windows 方便;
如果部署在本机上,会比较吃硬件资源,电脑配置差点的童鞋,可能感觉卡顿严重,影响开发效率!
逼格高,比如你去面试的时候,提及自己有一个部署在公网服务器的博客,会对你印象分更高,相对没有玩过云服务器的,你更容易拿到 Offer ~
目前阿里云双十一活动正在火热进行中,扫描下面的二维码怎么申请云主机,通过小哈的开团链接购买阿里云服务器,一年最低只需 84 元!也就是说,一个月最低仅需 7 元哟 !顺带说一句,小哈的个人博客就是部署在阿里云服务器上,还是非常稳定的~
另外,腾讯云也在搞活动,看了一下,价格貌似会贵个几块钱,一年最低是88元!想购买腾讯云服务器的可以扫描下面的二维码:
购买过程中的注意事项
因为小哈几年前就买过了,为了方便演示,我这里购买了一台按量服务的服务器。配置大致过程差不多,主要注意事项如下:
系统镜像选择
这里,公共镜像选择第一个 CentOS, 因为其更加稳定,而且大部分企业线上环境都是使用的 CentOS, 版本选择最新 7.x 64 位。
区域选择
区域上,我们尽量选择里客户近的机房区域,比如说你想在服务器上部署一个博客,当然是希望别人访问博客的时候,网络延迟越低越好~
远程登录方式
小哈个人更喜欢使用用户名、密码来登录,当然你也可以使用私钥来登录,看个人喜好。
访问创建的实例
相关设置完成后,在阿里云控制台,点击实例,就可以看见我们刚刚购买的实例服务器了:
列表中有显示新申请的这台实例的公网地址,复制完成后,接下来,开始访问这台远程服务器。
远程访问的客户端,你可以选择 Xshell, 或者其他客户端均可以,小哈使用的 Mac 系统,这里使用的 Terminus, 步骤基本如下:
可以看到,小哈已经这边已经登录成功了。
部署相关环境
新服务器登录上去基本是非常干净的,比如 Java 环境、Mysql 等,什么都没有,所以要一一安装。
安装 JDK 1.8
访问 JDK 1.8 的官网下载地址 ,下载安装包:
没办法下载的小伙伴,可以公众号后台,回复关键词:jdk, 即可获取小哈下载好的 JDK.
下载成功后,上传到服务器的指定目录下 /home(目录可以自己选择),解压:
tar -zxvf jdk-8u211-linux-x64.tar.gz
配置环境变量,编辑 /etc/profile:
vim /etc/profile
移动到文本最后一行,添加如下配置:
export JAVA_HOME=/home/jdk1.8.0_211
export JRE_HOME=/home/jdk1.8.0_211/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
保存退出!
重新加载系统配置文件:
source /etc/profile
再次执行命令 java-version, 查看 JDK 环境是否配置成功。
输出了 JDK 版本信息,安装成功。
安装 MySQL
我们选择安装 MySQL 5.7 版本,执行如下命令:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
权限设置:
chown mysql:mysql -R /var/lib/mysql
启动 MySQL:
systemctl start mysqld
查看 MySQL 运行状态:
systemctl status mysqld
关于 MySQL 登录密码:
正常来说在启动日志里会生成一个随机密码,以供登录,小哈这里安装的时候并没有生成,具体原因还不太清楚。这边可以先取消默认密码:
# 编辑mysql配置文件
vim /etc/my.cnf;
# 在 [mysqld] 小节下添加一行:
skip-grant-tables=1
# 重启mysql
systemctl restart mysqld;
登录:
mysql -u root
执行命令:
# 修改 root 账户密码为 123456
update mysql.user set authentication_string=password('123456') where user='root';
# 刷新
flush privileges;
# 退出 mysql
quit;
退出 MySQL 后,再将 /etc/my.cnf 文件中的 skip-grant-tables=1 删除掉,重启 MySQL 即可;
设置 Mysql 3306 端口安全组
由于阿里云服务器安全限制,此时想访问远程数据库,还需将 3306 端口加入到安全组中:
依次点击 更多 -> 网络和安全组 -> 安全组配置,将 3306 端口配置到安全组中,同时授权固定 IP 来访问,也就是白名单:
测试本机是否能够连接远程的 MySQL
小哈这里使用 Mac 的客户端 Sequel Pro 来测试,小伙伴们使用 Navicat 也是 OK 的:
连接远程 MySQL 的解决办法
有的小伙伴们按照上述步骤,可能最后发现自己安全组端口也加白名单了,还是连不上的情况。那是因为设置 MySQL 的时候, root 账号不允许从远程登录导致的。
解决办法:
# 登录 mysql
mysql -u root -p
# 授权 root 账户能从任何主机远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
# 刷新
flush privileges;
# 退出 mysql
quit;
设置成功后,再次连接,就没问题了。
部署一个 Spring Boot 项目
小哈的个人独立博客就是使用 Spring Boot 来开发的,部署在阿里云服务器上,又买了一个域名做了映射。关于域名这块,我们先不谈,先尝试部署一个简单的 Spring Boot 项目,且通过公网 IP 来访问它。
关于如何初始化一个入门级的 Spring Boot 项目,小伙伴们可以参考小哈之前写的这篇文章:
《》
定义一个简单的访问接口:
/**
* @author 犬小哈(公众号: 小哈学Java)
* @date 2019/1/29
* @time 13:58
* @discription
**/
@RestController
@Slf4j
public class TestController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot with Aliyun !";
}
}
项目打包:
mvn clean package
进入 target 目录,将 jar 包上传到服务器指定目录:
并以后台启动方式运行项目:
nohup java -jar spring-boot-hello-0.0.1-SNAPSHOT.jar &
启动成功后,我们尝试通过公网来访问这个服务,注意,因为项目启动在 8080 端口,还需将 8080 端口也加入安全组才行。
在浏览器中,访问这个服务:
至此,一个入门级的 SpringBoot 项目在云服务器上就部署完成了!当然,能做的远不至于此,比如部署一个博客项目,小伙伴们可以去尝试一下~
最后
本教程中,小哈带着大家从购买云服务器的事项说起怎么申请云主机,并一步一步带着大家演示了,怎样安装 JDK 环境、MySQL 数据库,以及部署一个入门级的 Spring Boot 项目,有兴趣的小伙伴可以入手买一台玩一玩~
目前阿里云双十一活动正在火热进行中,扫描下面的二维码,通过小哈的开团链接购买阿里云服务器,一年最低只需 84 元!也就是说,一个月最低仅需 7 元哟 !顺带说一句,小哈的个人博客就是部署在阿里云服务器上,还是非常稳定的~
另外,腾讯云也在搞活动,看了一下,价格貌似会贵个几块钱,一年最低是88元!想购买腾讯云服务器的可以扫描下面的二维码:
推荐阅读
• 看看人家那后端API接口写得,那叫一个优雅!• 是时候扔掉 Postman 了,试试 IntelliJ IDEA 自带的高能神器!• 当Docker遇到Intellij IDEA,再次解放了生产力~• 还在用if(obj!=null)做非空判断?带你快速上手Optional实战性理解!
最近面试BATJ,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,加站长微信免费获取积分,会员只需38元,全站资源免费下载 点击查看详情
站 长 微 信: thumbxmw声明:本站内容转载于网络,版权归原作者所有,仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!