0%

记一次坑爹的部署SpringBoot项目

前言

​ 前几天给朋友的朋友的公司写了个企业官网,全部搞定就差部署在服务器上了,构思的是NameSilo+阿里云,于是快速的在NameSilo上买了域名,阿里云买了上海节点的服务器,为啥要在Namesilo上买呢?因为买的是”.com”的顶级域名,首先价格便宜,其次最最主要的还是域名不用备案!当时天真的以为只需要备案一个服务器就可以了,随后快速上传源码搭建环境,开80端口,一切准备就绪访问主页,不出意外,提示无法访问要备案。

​ 之前备案过,所以觉得这次备案过程不是特别的繁琐,直到我发现这次备案的单位不是个人,是企业,于是乎仔细翻了翻阿里云备案的文档,企业备案真的是繁琐的一逼啊!!看到了备案的服务器所对应的域名必须要备案!!好吧,我放弃备案,于是乎退掉上海服务器,飞速下单阿里云香港服务器(非大陆服务器免备案),又是一顿操作搭建环境,官网上线,一开始访问没啥问题,后来主页打开越来越慢,就连连个ssh一直掉线,debug了一下,发现一个加索引的查询的sql都要跑十几秒,一度怀疑是硬盘有问题,试了各种方法怎么都解决不了(除了加钱),于是乎重装系统,从centos7.3升级到7.6,然后又是搭建环境,结果还是慢,再重装,centos7.6到centos8.2,再搭建环境,还是慢!!实在受不了了,阿里云退款

image-20210824093700697

随后去买腾讯云,抱着试一试的心态,因为我感觉腾讯阿里差不多吧,直到买完ping了下

image-20210824093812278

惊奇的发现延迟只是阿里云的1/3,一顿狂喜之后,xshell连上明显延迟低了很多很多,又是一顿环境搭建,然后上线,一切正常,Bingo!

​ 鉴于每次搭建环境敲命令敲到手软,于是乎把部署需要用的命令记录一下,下次再搭建环境直接复制粘贴吧。

命令

  1. 下载JDK

  2. 安装Mysql

    • 首先去MySQL :: Download MySQL Yum Repository下载对应系统的仓库

    • 安装仓库

      1
      rpm -ivh mysql80-community-release-el7-3.noarch.rpm
    • 更新yum

      1
      yum install update
    • 使用yum安装mysql

      1
      yum install mysql-server
    • 安装完后启动mysql服务

      1
      service mysqld start
    • 查看mysql初始密码

      1
      grep 'temporary password' /var/log/mysqld.log
    • 登录mysql

      1
      mysql -uroot -p
    • 修改默认密码

      1
      ALTER USER 'root'@'localhost' IDENTIFIED BY 'XXXXXXXX';
    • 新建字符集为UTF-8,排序规则为utf8_general_ci的数据库

      1
      CREATE DATABASE xxxx DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  3. 安装redis

    • 官网Redis下载gz包

      1
      wget https://download.redis.io/releases/redis-6.2.5.tar.gz
    • 解压缩

      1
      tar -xzvf redis-6.2.5.tar.gz
    • 切换到压缩好的目录编译redis,需要提前安装gcc和make

      1
      make && make install
    • 设置redis后台运行,编辑redis.conf中的daemonize为yes

      1
      daemonize yes
    • 后台运行redis

      1
      redis-server redis.conf
  4. 安装screen

    • yum install screen
  5. 安装niginx

    • yum install nginx

    • 启动nginx

      1
      systemctl start nginx
    • 修改nginx.conf ,将8080端口转发到80

      server {
      listen 80;
      server_name xxxxxxx.com; #域名信息,即你的域名解析到的主机地址

      ​ location / {
      ​ root html;
      ​ index index.html index.htm;
      ​ proxy_pass xxxxxxx.com:8080 ;
      ​ }

    • 获取真实IP

      proxy_set_header Host $host;

      proxy_set_header X-Real-IP $remote_addr;

      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    • 重启nginx

      1
      systemctl restart nginx
  6. 进入screen 跑项目源码

    1
    java -jar xxxx.jar

完结撒花:smile: