希文的个人博客

白日依山尽,黄河入海流。欲穷千里目,更上一层楼。

0%

购买云服务器与配置

购买云服务器与配置

[TOC]

1.购买云服务器

1.购买成功需要自己启动

image-202206231636592302.重置密码

3.设置安全组

一开始没设置3306端口就进不来,如果有需要开发端口

9

1.点击

image-20220623163924482

2.点击后

image-20220623164147437

3.开动80端口

  • 默认

image-20220623164534202

  • 要设置的方式
  • 授权对象

image-20220623164648796

  • ssh链接方式

10

2. 云主机基础配置

  • 配置云主机的hostname

    • 设置hostname(设置完成后需要重启)
    1
    hostnamectl set-hostname master

    查询当前主机的hostname

    1
    hostname
    注意:如显示master,则说明配置成功,当前xshell终端的hostname不会自动修改,重新连接一次即可。
    
  • 修改hosts文件

    • 编辑hosts文件
    1
    vim /etc/hosts
    • 按i进入编辑模式,新起一行,ip为当前云主机的内网ip,tab键之后,填写master

      按esc退出编辑模式,输入:wq!,保存本次修改并退出。

  • DNS寻址

image-20220628092805118

  • 关闭云主机的防火墙

    1
    2
    3
    4
    systemctl stop firewalld.service            #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    firewall-cmd --state #查看firewall运行状态 如显示not running,则配置成功

云主机安装MariaDB

在云主机中输入:yum install mariadb-server,在线安装Mariadb

img

进入自动安装,完毕会有如下提示:

img

第一次使用MariaDB之前,需要进行初始化操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
启动MariaDB
systemctl start mariadb

设置开机启动
systemctl enable mariadb

MariaDB初始化配置
mysql_secure_installation

密码验证,初次直接敲回车
Enter current password for root (enter for none):<–初次运行直接回车

设置root用户密码-教学这里使用root
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码

其他配置:
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车

img

1
2
登录MariaDB:
mysql -uroot -proot

img

1
2
退出MariaDB
exit;

云主机安装JDK

  • 进入/opt/software/java目录下
1
2
3
cd /opt/software
mkdir java
cd java
  • 下载linux-jdk1.8版本压缩文件到到本地/opt目录下

    1
    wget https://mirrors.huaweicloud.com/java/jdk/8u152-b16/jdk-8u152-linux-x64.tar.gz
  • 解压缩到目录下

    1
    2
    tar -zxvf jdk-8u152-linux-x64.tar.gz
    mv jdk1.8.0_251 jdk1.8
  • 查看是否解压成功

  • 配置环境变量

    编辑/etc/profile文件

    1
    vim /etc/profile

    vim会开启文档查看窗口,默认情况下不可修改文档内容,可以使用键盘的方向键浏览文档。这里使用移动到文档的最后一行,按键盘上的i键进入编辑模式,会看到文档下方提示-- INSERT --,该模式下可以对文档内容进行修改。

    在最后一行后面新起几行,添加如下内容:

    1
    2
    export JAVA_HOME=/opt/software/java/jdk1.8
    export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin

    然后按ESC退出编辑模式,输入:wq!保存本次修改并退出vim

    /etc/profile文件的修改默认不会马上生效,可以使用命令source /etc/profile让本次修改在当前访问中生效。

  • 验证是否配置成功,使用java -version命令

云主机安装Tomcat

  • 进入/opt/software/tomcat目录下
1
2
3
cd /opt/software
mkdir tomcat
cd tomcat
  • 下载Tomcat8.5安装文件
1
wget https://mirrors.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.63/bin/apache-tomcat-8.5.63.tar.gz

  • 解压缩

将Tomcat安装文件解压缩:

1
tar -zxvf apache-tomcat-8.5.63.tar.gz

查看并将文件夹重命名为tomcat-8.5

image-20220626112211752

  • 配置环境变量

编辑/etc/profile文件

1
vim /etc/profile

vim会开启文档查看窗口,默认情况下不可修改文档内容,可以使用键盘的方向键浏览文档。这里使用移动到文档的最后一行,按键盘上的i键进入编辑模式,会看到文档下方提示-- INSERT --,该模式下可以对文档内容进行修改。

在文件最后声明CATALINA_HOME变量,并将$CATALINA_HOME/bin添加到PATH变量中:

1
2
3
export JAVA_HOME=/opt/jdk1.8.0
export CATALINA_HOME=/opt/tomcat-8.5
export PATH=$CATALINA_HOME/bin:$JAVA_HOME/bin:$PATH:$HOME/bin

然后按ESC退出编辑模式,输入:wq!保存本次修改并退出vim

/etc/profile文件的修改默认不会马上生效,可以使用命令source /etc/profile让本次修改在当前访问中生效。

配置成功后,检查环境变量是否配置成功,可以输入命令:

1
version.sh

如果可以输出上述信息,则环境变量配置成功。如果提示command not found,则表示配置失败,需要重新对/etc/profile进行配置。

解决Centos7下Tomcat启动过慢的问题:配置JVM使用伪随机函数生成器:

1
vim /opt/software/java/jdk1.8/jre/lib/security/java.security

将117行修改为securerandom.source=file:/dev/urandom

  • 启动Tomcat

可以直接使用命令启动Tomcat:

1
startup.sh

我们可以通过本地浏览器,远程访问云主机上的Tomcat首页。

关闭Tomcat的命令为shutdown.sh

需要注意,还应该在阿里云主机控制台安全组设定中,添加一条入方向规则,开放8080端口:

img

开发端口后,在云主机上启动Tomcat,然后在本地浏览器中输入http://云主机公网ip:8080,可以访问到云主机的Tomcat首页:

12

3.将项目打包上传到云主机

传统的web项目部署war包方式和springboot内置了tomcat的基于jar的方式图解

image-20220627105424634

1.传统的web项目部署war包方式(后续补充)

2.springboot内置了tomcat的基于jar的方式

1.修改yml配置文件或者properties文件中

将server.post端口改成80

1.我用的是yml文件配置两种环境生产模式和开发模式

​ 我在云服务器中配置了环境变量,会切换到生产模式,如果没有配置环境变量会默认开发模式(dev).

1
2
3
4
#环境变量名称
PRODUCTION
#环境变量值
prod

image-20220627111407536

image-20220627111424716

2.maven命令打包

image-20220627111018807

3.将jar包改名上传(如:nybike.jar)

​ 用tabby的sftp工具上传到/opt/software/java/jar路径下

image-20220627111956580

上传成功

4.进入云主机的数据库

创建数据库、创建表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mysql -uroot -proot

-- 创建数据库
create database nybikedb;

-- 使用库
use nybikedb;

-- 创建表
create table t_operation(
id int primary key auto_increment comment '主键',
user_ip varchar(32) comment '用户IP',
created_time timestamp comment '创建时间',
opt_type int comment '操作类型,0-点击,1-缩放,2-拖拽',
zoom_start_level double comment '缩放开始级别',
zoom_end_level double comment '缩放终止级别',
drag_start_lat double comment '拖拽起始纬度',
drag_start_lng double comment '拖拽起始经度',
drag_end_lat double comment '拖拽终止纬度',
drag_end_lng double comment '拖拽终止经度',
station_id varchar(20) comment '点击的站点ID'
);

-- 查看表是否创建成功
show tables;

image-20220627112908258

5.启动命令

示例

1
2
3
4
#运行命令
nohup java -jar xxx.jar > catalina.out 2>&1 &
#停止命令
kill -9 进程的号(如下面启动的1709jar包的进程)

1.本次项目用到的命令

1
nohup java -jar /opt/software/java/jar/nybike.jar > /opt/software/java/jar/nybike.out 2>&1 &

输入成功图片

image-20220627120404448

2.jps查看

image-20220627120441076

3.通过浏览器访问网页

示例

1
2
3
4
5
6
7
http://云服务的公网ip/nymap.html

#地图服务
http://123.57.135.112/nymap.html
#可视化服务
http://123.57.135.112/demo/opt_typy_count.html

image-20220627120712016

命令参数解析

1
2
3
4
5
6
7
8
#完整的命令
nohup java -jar xxx.jar > catalina.out 2>&1 &
#运行命令
nohup java -jar xxx.jar
#日志文件输出到catalina.out文件中, 2>$1的意思是运行的日志和报错的日志都放到catalina.out日志文件中
> catalina.out 2>&1
#最后面的'&'是后台运行程序
&

项目启动失败的解决方案

8

1.导致nybike项目启动失败的原因可能有多个,必须通过日志去识别具体的失败原因。

使用cat 命令查看/opt/nybike.out,从中找到异常信息,确定启动失败的实际原因。

2.本地数据库与云主机数据库密码不一致

  • 启动后,地图上直接各类操作时,反馈500的状态码,查看服务器上的nybike.out的内容,可以看到

    image-20220627164358591

  • 修改本地IDEA项目中 application.properties中配置的数据库密码

  • 本地修改完成后,需要使用maven重新打包项目,打包完成后,target文件夹下的nybike-0.0.1-SNAPSHOT.jar会被自动更新成最新的内容,然后重新将该文件上传到云主机上

  • 云主机上原来的/opt/nybike.jar文件需要删除

    • 命令rm -f /opt/nybike.jar
    • 也可以在Tabby中SFTP中,右键该文件,选择Delete
  • 注:云主机上运行的旧的nybike项目也必须停掉

  • image-20220627164419764

  • 命令:kill -9 27351,其中27351是进程id

  • 之后再使用nohup...去启动新的项目