准备
- 购买云服务器【阿里云,腾讯云都可以】
- 重置密码
环境搭建
使用 xshell 连接云服务器
安装 JDK
Linux 上使用 yum 命令后,会将 OpenJDK 安装到 /usr/lib/jvm/ 目录下
# 安装 OpenJDK yum install -y java-1.8.0-openjdk.x86_64
- 配置 jdk 环境变量
# 打开配置文件 vim /etc/profile
进入文本编辑状态下,光标走到文件最后一行末尾(shift+g 快速定位到文件的最下方),键盘按下:i(英文状态)
插入下面四行语句
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64 export JRE_HOME=/$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
:wq 保存退出
2. 让环境变量生效
source /etc/profile
- 检查 JDK 是否安装成功
java -version [root@VM-0-2-centos jvm]# java -version openjdk version "1.8.0_262" OpenJDK Runtime Environment (build 1.8.0_262-b10) OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
MySQL5.7 安装
- 下载 MySQL
# 下载 MySQL 安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm #安装 yum 源 rpm -Uvh mysql57-community-release-el7-11.noarch.rpm #查看 yum 仓库 MySQL 的启动列表 yum repolist enabled | grep mysql #安装 MySQL 数据库 yum install mysql-community-server
- 启动 MySQL 服务
# 启动 MySQL 服务 systemctl start mysqld #查看 MySQL 启动状态 systemctl status mysqld #设置开机启动 systemctl enable mysqld systemctl daemon-reload
- 登录重置密码
MySQL 安装完成后,在 /var/log/mysqld.log 文件中给 root 生成了一个默认密码,可以通过命令查看密码:grep "temporary password" /var/log/mysqld.log
然后可以使用这个密码登陆 MySQL
mysql -uroot -p
回车输入密码登陆数据库,第一次登陆需要重置密码,以下命令重置:
首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
输入设值语句“set global validate_password_policy=LOW;”进行设值
set global validate_password_policy=LOW; ALTER user 'root'@'localhost' identified by '123456';
重置后使用新密码可以登陆,操作数据库
注:这里是将密码修改为‘123456’,这里只是示范,可别弄这么简单的密码,要不然数据怎么丢的都不知道
到这里数据库就安装完成了,已经可以满足部署项目的基本需求了,这里再另外多讲两点:数据库配置、数据库授权
- 数据库配置
数据库配置是通过 /etc/my.cnf 文件进行配置,这里配置一下字符集为 utf8mb4,打开 my.cnf 文件:vim /etc/my.cnf , 在文件末尾添加:
# 设置数据库字符集为 utf8mb4 [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect = 'SET NAMES utf8mb4' lower_case_table_names = 1 # 表名不区分大小写
修改完成后,重启 MySQL 服务:
# 重启 MySQL systemctl restart mysqld
- 数据库授权
为了方便对数据库进行操作,一般都是使用可视化软件对数据库进行远程连接,但如果任何一台机子都可以对你的服务器数据库进行远程连接,那就不安全了,这里就需要对数据库进行授权,指定可以远程连接的数据库,没有授权就只能支持 localhost 本地访问了。
# 登陆数据库 mysql -uroot -p # 使用数据库 use mysql; # 设置权限 set global validate_password_policy=LOW; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; # 刷新权限 flush privileges; #退出,重启服务器 service mysqld restart
设置权限那一句:
*. *:表示 所有库. 所有表
‘root’@’%’ identified by ‘root’:
前一个 root:表示用户名,
%:是指所有访问 ip
后一个 root:表示数据库密码
通过这一句可以配置远程访问的数据库和访问的 IP,博主一般是直接配置 ’%’ 所有 IP 都能访问,因为有时候开发需求会改变 IP,如果指定 IP 的话就不方便,所以配置了 ’%’,一般情况下是将 3306 端口给关闭,需要远程连接的时候再把 3306 端口打开,用完就关闭,这样安全些
为了方便操作,这里可以将服务器的安全组进行修改,咱们打开服务器的实例控制台,找到安全组规则,点开编辑入站规则,可以看到服务器有两条默认规则,可以看到第一条是将所有服务端口都开放了,这样不太安全,所以这里将它关闭,然后打开需要配置的端口
拒绝所有协议端口
点击第一条的编辑,将允许改为拒绝,然后保存
添加 22 端口和 3306 端口
22 端口是 SSH 远程连接用的,3306 是数据库远程连接用的
点击添加规则,添加如下两条,点击完成,即可远程连接数据库
注:平时不用远程连接数据库的时候可以将 3306 端口给关了,用的时候再打开
项目部署
点击 idea 右边的 Maven Projects,双击 clean,执行完后再双击 package
不出意外,控制台会显示 BUILD SUCCESS,并有 jar 包文件的大小,在 target 文件夹下面会生成一个 myblog-0.0.1-SNAPSHOT.jar 的 jar 包,这个就是要上传到服务器进行部署的 jar 包。
- 部署
将刚生成的 jar 包上传到服务器上,进行部署,这里要注意上传之前要将项目的数据库配置换成服务器的数据库 - 上传
# 创建文件夹 mkdir myblog # 进入目录 cd myblog
- 关闭防火墙,开放项目端口
- 防火墙相关
# 查看防火墙状态 systemctl status firewalld # 打开防火墙 systemctl start firewalld # 关闭防火墙 systemctl stop firewalld
- 开放 8080 端口
进入服务器控制台安全组规则,添加规则,开放 8080 端口,开放后如下:
运行 jar 包
这里让 jar 包在服务器后台运行,进入 jar 包文件夹,执行命令运行 jar 包
# 进入 jar 包文件夹 cd /home/myblog # 后台运行 jar 包 java -jar dj-1.0.jar ctrl+z bg exit
访问
在浏览器中访问服务器的 8080 端口
配置域名访问(http)
一般来说,一个服务器不止跑一个服务(看自己需求,当然也可以只跑一个),每个服务都是使用一个二级域名来进行访问,所以这里配置二级域名进行访问
- 添加解析
点进去后如下,可以看到这里是空的,因为没有添加任何解析,咱们点击添加解析,然后添加自己的域名
添加后会有一条添加域名信息,点击域名,这里要添加三条记录,以下三条:
注:如果只是要配置自己的网站能够通过域名访问,那就只需要配置下满截图中的第三条二级域名就可以了,但是一般来说,一个服务器不只是通过二级域名访问,还会有直接访问和
@:表示直接解析域名
www:解析域名通过 www 访问
xxxx(二级域名):解析通过二级域名访问,我这里配置的是 onestar 二级域名
这里添加后如下,记录值为自己服务器的公网 IP
添加完成后就可以使用域名进行访问了,But,这样直接访问的话,访问的是服务器默认访问的 80 端口,而我们项目用的端口是 8080,所以这里要将端口进行转发,将 8080 端口转发到域名,这里就要用到反向代理的技术了。
反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器。这里使用 NGINX 反向代理,将 80 端口转发到 8080 端口,需要对 NGINX 进行配置,所以要先下载 NGINX
- 下载安装 NGINX
# 下载 NGINX:yum install nginx # 启动 nginx:systemctl start nginx # 加入开机启动:systemctl enable nginx # 查看 nginx 的状态:systemctl status nginx
- 配置 NGINX
下载后需要对 NGINX 进行配置,这里的配置文件是 nginx.conf,可以使用命令 find / -name “nginx.conf” 进行查找,默认是在 /etc/nginx/nginx.conf,咱们来进行配置:
# 打开 nginx.conf 配置文件 vim /etc/nginx/nginx.conf
添加如下配置:
server {listen 80;# 记得开放 80 端口 server_name blogs.jokerdj.top;# 域名地址 location / { proxy_pass http://121.43.145.142:8080;# 项目地址} }
这里我们了解一下几点就可以了:
listen:监听 80 端口
server_name:转发到哪个地址,也就是前面配置的二级域名地址
proxy_pass:代理到哪个地址,也就是要访问的服务器端口地址
- 重启 NGINX
# 重启:nginx -s reload
重启后服务就生效,可以使用域名进行访问了
原文链接:https://www.cnblogs.com/joker-dj/p/14081488.html