秒杀项目系列之一: 阿里云ECS服务器的搭建和项目部署

  1. 阿里云ECS服务器购买
    普通用户购买链接
    学生用户购买链接,9.9/月,毕业前可续

  2. 配置实例密码(环境为centos8.0)
    秒杀项目系列之一: 阿里云ECS服务器的搭建和项目部署

  3. 使用终端远程登陆

    sudo ssh root@服务器共有ip地址
    yes
    输入实例密码便可进入远程控制终端
    
  4. 在服务器上安装jdk

    # 下载jdk压缩包
    wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
    # 解压
    tar zxvf jdk-8u141-linux-x64.tar.gz
    # 将jdk数据拷贝到java目录下
    cd /usr/local
    mkdir java
    mv /tmp/jdk1.8.0_141/ ./java
    # 修改环境变量
    vim /etc/profile
    # 在文件末尾添加下面内容
    export JAVA_HOME=/usr/local/java/jdk1.8.0_141
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export PATH=$PATH:${JAVA_PATH}
    # 保存退出
    :wq
    # source命令使/etc/profile文件立即生效
    source /etc/profile
    # 通过查看安装java版本看看jdk是否安装成功
    java -version
    
  5. 服务器上安装mysql数据库环境

    # --skip-broken为跳过无法安装的软件包,使用yum install mysql*会报一些与mysql-mmm...软件有关的错误,但是没什么用
    yum install mysql* --skip-broken
    # 查看mysql是否安装成功
    mysql --version 或 mysql -V
    # 启动mysql
    systemctl start mysqld
    # 查看mysql是否启动成功(3306为mysql默认端口)
    ps -ef|grep mysql 或 netstat -anp|grep 3306
    # 设置mysql密码
    mysqladmin -u root password 123456
    # 登陆mysql(-u后面为用户名,-p后面为密码)
    mysql -uroot -p123456
    # 登陆后便可执行数据库相关操作,比如查看所有数据库
    show databases;
    
  6. 数据库备份及导入到阿里云服务器的mysql中

    # 本机命令,将miaosha数据库备份
    /usr/local/mysql/bin/mysqldump -uroot -p123456 miaosha > /Users/zhaolijian/Downloads/miaosha.sql
    # 将数据库备份文件上传到阿里云服务器
    scp miaosha.sql root@101.37.171.33:/tmp/
    # 将数据库备份文件miaosha.sql导入到服务器mysql
    mysql -uroot -p123456    # 进入mysql
    create database miaosha; # 创建miaosha数据库
    quit                     # 退出数据库
    mysql -u root -p miaosha < /tmp/miaosha.sql   # 将备份文件miaosha.sql中的数据导入到miaosha数据库中(执行完该命令后会输入root用户对应的密码)
    mysql -uroot -p123456    # 进入mysql
    show databases;          # 查看数据库,可看到miaosha数据库
    use miaosha              # 进入miaosha数据库中
    show tables;             # 查看miaosha数据库中的表
    
  7. 云端部署+打包上传+启动jar包提供服务

  • 在springboot项目中添加如下依赖

    <!--      作用: Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用。-->
    <build>
      <plugins>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
          <version>2.3.4.RELEASE</version>
        </plugin>
      </plugins>
    </build>
    
  • 查看是否安装了maven,若没有安装maven,见链接

  • 打包项目

    # 首先进入项目根目录,然后执行如下命令
    mvn clean package
    # 通过下面指令可运行jar包项目
    java -jar miaosha-1.0-SNAPSHOT.jar
    
  • 将jar包上传到阿里云服务器

    sudo scp miaosha-1.0-SNAPSHOT.jar root@101.37.171.33:/tmp/ 
    # 将该jar包拷贝到/var/www/miaosha目录下,并重命名为miaosha.jar
    cd /var
    mkdir www
    cd www
    mkdir miaosha
    cd miaosha
    mv /tmp/miaosha-1.0-SNAPSHOT.jar ./miaosha.jar
    # 修改miaosha.jar权限
    chmod -R 777 miaosha.jar 
    # 服务端启动
    java -jar miaosha.jar
    
  • 开放阿里云服务器的端口,否则无法提供服务(在阿里云控制台/安全组/右侧配置规则)
    秒杀项目系列之一: 阿里云ECS服务器的搭建和项目部署
    注: 该处设置为全部打开

  • 修改前端ajax请求的url地址为阿里云服务器ip(前后端分离),并测试是否能够提供服务
    秒杀项目系列之一: 阿里云ECS服务器的搭建和项目部署
    秒杀项目系列之一: 阿里云ECS服务器的搭建和项目部署

  1. 外挂配置文件
  • 上面部署项目中存在的问题
    所有的配置,比如服务端口、数据库访问路径、驱动、用户名、密码等都是已经配置好的,有时需要修改,如果重新在配置文件中修改、打包、部署到服务器会很麻烦.

  • 解决办法
    在服务器上新建一个外挂配置文件,在运行jar包的时候使用新的配置文件中的内容替代jar包中的配置(如果修改了端口,那么前端url端口也需要修改)

    vim application.yml
    # application.yml文件内容
    server:
      port: 8090
    
    spring:
      datasource:
        name: miaosha
        # 使用localhost和127.0.0.1可以访问数据库,但是使用ip地址不行,还没有解决,暂时使用127.0.0.1 / localhost
        url: jdbc:mysql://127.0.0.1:3306/miaosha?characterEncoding=utf8&useSSL=false
        username: root
        password: 123456
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
    # 运行jar包
    java -jar miaosha.jar --spring.config.addition-location=/var/www/miaosha/application.yml
    
  1. deploy.sh脚本文件(启动应用程序的console页面退出,应用程序也不会退出)

    # deploy.sh脚本文件内容
    nohup java -Xms400m -Xms400m -XX:NewSize=200m -XX:MaxNewSize=200m -jar miaosha.jar --spring.config.addition-location=/var/www/miaosha/application.yml
    # 赋予deploy.sh脚本权限
    chmod 777 deploy.sh
    # 执行脚本(&表示在后台运行)
    ./deploy.sh &
    

    执行脚本后的界面如下(应用程序后台运行,不影响用户执行其他操作,日志信息输出到nohup.out文件中):
    秒杀项目系列之一: 阿里云ECS服务器的搭建和项目部署

上一篇:linux三剑客之一(sed)


下一篇:java初探(1)之秒杀项目总结