• 项目上云实战:如何把Java项目搬上云服务器?


    1.中小型企业项目开发完成后应如何运行?

    最近在后台私信中,很多小伙伴问询博主,中小企业项目开发完成后,是否在pc机上直接运行。答案是否定的,专业的软件开发企业都会选择linux服务器作为运行环境,企业服务器有两种:一种是实体机房,一种是云服务器。

    2.传统机房和云服务器如何选择

    如今使用云服务器企业的比例已经大大超过传统机房,理由如下:

    1. 机房成本过大,博主公司前些日为当地某政府机关搭建机房,花费需要近百万,一般企业难以接受成本。
    2. 施工难度高,需要优秀网络人才做个性化设计应对客户各类需求。
    3. 后期维护成本高,如果网络工程师完成的效果是以下样子,可以自行脑补后期如何维护。在这里插入图片描述
    4. 软件运行的前提是网络安全,使用安全软件和聘请软件安全人员又是一大笔花费。
    5. 容灾能力较差,如果有自然、人为灾害造成数据丢失,后果无法估计。
      现有环境下,只有少数政府、银行等极其保密的项目才需要选用传统机房。

    3.如何选择云服务器

    在各大厂商的云服务器产品中,博主推荐华为云服务器,对比其他云服务器有以下特点:

    3.1 安全可靠服务好

    华为云的机房安全等级达到了Tier4,安全上的专项研发占总体研发投入5%,通过了全球100+合规认证,为用户数据安全提供全程护航。同时,华为承诺不用技术手段非法获取客户数据、不强迫客户交换数据。并且华为云在300+城市有本地团队,提供7*24小时咨询,可深度定制解决方案。在云服务器使用过程中,华为云提供一系列的监控与运维功能,操作与监控更加便捷。

    3.2 领先技术实力,更懂企业客户

    华为云承袭华为30+年企业服务经验积淀,更懂企业需求,全面覆盖企业业务场景,并提供对应解决方案与最佳实践。同时华为云通过在研发上的持续高投入,掌握云计算根技术,可轻松应对企业业务安全、高并发、快速创新等业务挑战。并且华为云可以提供专属资源,满足特定行业数据物理隔离需求,资源独享,无需担心资源抢占,最低0.5ms稳定低时延,99.9999%业务高可用。

    3.3 运维成本低

    企业可以根据使用需求按需付费,无需固定资产投资。云服务器灵活弹性,资源可按照峰值建设利用,减少流量与资源的浪费。而且可以在云上随时使用最新的技术,按需使用,实施周期也大大缩短。

    3.4 性能优越

    接下来,将通过选择市面上针对中小型企业的云服务器产品:华为云HECS(云耀云服务器)和阿里云共享标准型S6实例(以下简称“ALS6”)进行一个对比测评,让我们来看看实际的表现如何。
    测试过程,选择HECS和ALS6位于北京的机房,测试配置均为4C8G。具体配置如下:
    在这里插入图片描述

    3.4.1 处理器与内存性能

    处理器表现上,经过连续五次跑分,我们取单核整型、单核浮点型、多核整型、多核浮点型四个跑分结果的平均值来对HECS和ALS6的处理器性能进行对比,结果如下:
    在这里插入图片描述
    通过测试我们看到HECS内存表现远好于ALS6,稳定性更高更可靠,内存性能表现更好。

    3.4.2 网络性能

    这里使用一台测试机和一台陪练机作为测试基础进行测试。首先进行ping时延测试,具体测试结果如下:
    在这里插入图片描述
    通过测试发现,HECS的ping测试时延更低一些,在0.1毫秒上下,HECS在服务器内网间时延上更有优势。

    3.4.3 存储性能

    存储规格选型上,选择了1000G的华为云超高IO云硬盘、阿里云SSD硬盘,分别挂载到HECS和ALS6上作为系统盘,并使用fio对其进行性能测试。测试结果如下:
    在这里插入图片描述
    通过测试数据可以看出,华为云超高IO云硬盘挂载到HECS后可以达到其宣称的指标规格,性能优于阿里云SSD硬盘,同时在稳定性方面也更胜一筹。

    3.5 双11上云优惠多多

    恰逢双11,华为云还推出了一系列网站和企业应用上云场景的组合优惠,从现在到11月30日,所有场景组合折上9折起,还能领取5000元礼券。企业用户还能领3年时长新购券,抢完即止。还有万元礼包、轮盘抽奖、服务支持、储值买赠、限时免单等福利,实在是网站和企业应用上云不能错过的一大良机。
    在这里插入图片描述

    4.手把手教你使用云服务器发布Java项目

    当购买完云服务器后,需要熟练掌握部署的linux语法,下文总结了博主本司在华为云服务器的部署过程。
    本次部署过程采用了最基础的发布方式,全文傻瓜式教程,按照命令输入即可,晋级可以自行查找docker,k8s等部署方式。
    项目需要jdk,mysql,redis等传统依赖,安装完毕后即可运行项目。
    注意:软件安装包建议使用网盘地址,官方地址过慢。

    4.1 安装jdk

    4.1.1 下载jdk8

    直接上网盘链接:https://pan.baidu.com/s/1Ip6ILZ5eU90aqNryUqwFgw
    提取码:8por

    4.1.2 导入linux中

    软件安装在usr/local中,可使用ssh工具直接传入。

    4.1.3 解压

    cd /usr/local
    tar -zxvf jdk-8u231-linux-x64.tar.gz
    
    • 1
    • 2

    在这里插入图片描述

    4.1.4 环境变量配置

    vi /etc/profile
    
    • 1

    按i键,切换成编辑模式。找到内容末尾,按图片输入下面一段话。在unset i的前面输入 。

    export JAVA_HOME=/usr/local/jdk1.8.0_231
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    (!!!注意:JAVA_HOME的路径是你实际解压后的JDK的路径,千万别写错了)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    按Esc退出编辑模式,输入:wq保存并退出。

    4.1.5 环境变量生效

    source /etc/profile
    
    • 1

    4.1.6 验证

    java -version
    
    • 1

    在这里插入图片描述
    显示版本号就是安装成功了。

    4.1.7 jdk相关的其他命令

    查看JDK版本:java -version
    查看java执行路径:which java
    查看JAVA_HOME路径:echo $JAVA_HOME
    插看PATH内容:echo $PATH
    
    • 1
    • 2
    • 3
    • 4

    4.2 安装mysql数据库

    4.2.1 下载

    直接上网盘链接:https://pan.baidu.com/s/1FNijjVILpp_96nbZrFQ-iQ
    提取码:s59l

    4.2.2 解压

    新建一个文件夹,然后进入在其中解压。

    tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
    
    • 1

    在这里插入图片描述

    4.2.3 移动并重命名

    mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
    
    • 1

    在这里插入图片描述

    4.2.4 创建mysql用户组和用户并修改权限

    cd /usr/local/mysql
    groupadd mysql
    useradd -r -g mysql mysql
    mkdir -p  /data/mysql              #创建目录
    chown mysql:mysql -R /data/mysql   #赋予权限
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    4.2.5 配置my.cnf

    vim /etc/my.cnf
    
    • 1

    配置如下。

    [mysqld]
    bind-address=0.0.0.0
    port=3306
    user=mysql
    basedir=/usr/local/mysql
    datadir=/data/mysql
    socket=/tmp/mysql.sock
    log-error=/data/mysql/mysql.err
    pid-file=/data/mysql/mysql.pid
    #character config
    character_set_server=utf8mb4
    symbolic-links=0
    explicit_defaults_for_timestamp=true
    lower_case_table_names=1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4.2.6 初始化数据库

    cd /usr/local/mysql/bin/
    ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
    
    • 1
    • 2

    在这里插入图片描述
    注意:一定要和系统的版本对上,32位下32位的安装包,否则报错。mysqld: mysqld: cannot execute binary file。

    4.2.7 查看密码

    cat /data/mysql/mysql.err
    
    • 1

    在这里插入图片描述
    注意:包括最后的那个 . 而且mysql输入密码没有光标的,直接复制粘贴也可以。

    4.2.8 启动mysql,并更改root 密码

    先将mysql.server放置到/etc/init.d/mysql中。

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    
    • 1

    启动服务。

    service mysql start
    ps -ef|grep mysql
    
    • 1
    • 2

    停止服务。

    service mysql stop
    
    • 1

    在这里插入图片描述

    4.2.9 下面修改密码

    先登入初始密码 ,上文中查看出来的那一串,直接复制就可以。

    ./mysql -u root -p 
    
    • 1

    在这里插入图片描述
    登陆成功。

    4.2.10 更改密码

    SET PASSWORD = PASSWORD('123456');
    ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    FLUSH PRIVILEGES;       
    
    • 1
    • 2
    • 3

    4.2.11 更改配置,使用navicat连接

    use mysql                                            #访问mysql库
    update user set host = '%' where user = 'root';      #使root能再任何host访问
    FLUSH PRIVILEGES;   
    
    • 1
    • 2
    • 3

    如果不希望每次都到bin目录下使用mysql命令则执行以下命令。

    ln -s  /usr/local/mysql/bin/mysql    /usr/bin
    
    • 1

    4.3 安装redis

    4.3.1下载

    访问官网,下载即可,比较小,redis地址请访问:Redis官网。
    注意:要先安装c/c++环境!!!

    yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
    
    • 1

    在这里插入图片描述

    4.3.2 解压

    解压安装包,会在目录下生成一个文件夹。

    tar zxvf redis-5.0.0.tar.gz
    
    • 1

    在这里插入图片描述

    4.3.3 编译

    然后进入解压后的文件夹编译。

    make
    
    • 1

    在这里插入图片描述

    4.3.4 修改配置文件redis.conf

    这里主要修改三个部分。需要把下面配置注释/修改。

    bind 0.0.0.0        #将该行注释
    daemonize yes       #将后台运行设为yes
    protected-mode yes   #将安全模式设为yes
    requirepass 123456  #设置密码
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    4.3.5 运行

    cd src
    ./redis-server  ../redis.conf
    
    • 1
    • 2

    在这里插入图片描述

    4.3.6 验证

    查看是否启动。

    ps axu | grep redis
    
    • 1

    在这里插入图片描述

    4.3.7 停止

    ./redis-cli shutdown
    
    • 1

    4.4 启动jar包

    在idea中执行mvn clean install,并将打成的jar包通过ssh传输进入服务器,执行nohup java-jar 包名即可。
    在这里插入图片描述

    4.5 如何发布前端项目

    4.5.1 安装nginx

    4.5.1.1 安装依赖
    yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
    
    • 1

    在这里插入图片描述

    4.5.1.2 下载

    nginx下载地址如下:直接下载即可。请选择较新的版本。

    4.5.1.3 复制进入linux

    下载nginx-1.14.2.tar.gz,移动到/usr/local/下。可以使用ssh工具直接复制。

    4.5.1.4 解压
    tar -zxvf nginx-1.14.2.tar.gz
    
    • 1

    在这里插入图片描述

    4.5.1.5 编译

    ##进入nginx目录

    cd nginx-1.14.2
    
    • 1

    配置。

    ./configure --prefix=/usr/local/nginx-1.21.4
    
    • 1

    编译安装。

    make
    make install
    
    • 1
    • 2

    在这里插入图片描述

    4.5.1.6 验证

    测试是否安装成功

    ./sbin/nginx -t
    
    • 1

    出现异常
    在这里插入图片描述
    原因分析:nginx/目录下没有logs文件夹。
    解决方法:

    mkdir logs
    chmod 777 logs
    
    • 1
    • 2

    安装成功。

    4.5.1.7 启动nginx
    cd /usr/local/nginx/sbin
    ./nginx //启动nginx
    
    • 1
    • 2

    启动成功
    在这里插入图片描述
    配置nginx开机自启动

    vim /etc/rc.d/rc.local
    
    • 1

    4.5.2 打包

    打包生成dist文件。

    yarn run build
    
    • 1

    在nginx中新建jeecg-boot文件夹,将生成的dist文件夹放入。
    在这里插入图片描述

    4.5.3 修改配置文件

    修改nginx配置文件如下,文件位置:/usr/local/nginx-1.14.2/conf/nginx.conf

    server {
                    listen       80;
                    server_name  你的域名;
    
                    #后台服务配置,配置了这个location便可以通过http://域名/jeecg-boot/xxxx 访问                
                    location ^~ /jeecg-boot {
                            proxy_pass              http://127.0.0.1:8080/jeecg-boot/;
                            proxy_set_header        Host 127.0.0.1;
                            proxy_set_header        X-Real-IP $remote_addr;
                            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    }
                    #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
                    location / {
                            root   html;
                            index  index.html index.htm;
                            if (!-e $request_filename) {
                                    rewrite ^(.*)$ /index.html?s=$1 last;
                                    break;
                            }
                    }
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    4.5.4 验证

    访问http://域名/jeecg-boot即可
    在这里插入图片描述
    由此可见,项目已发布成功。

    5.总结

    企业上云已经是软件行业发展的趋势,如东软等大型企业已完成由机房到云服务器的转变,而中小型企业也应该紧跟潮流,替换传统方式,全面拥抱云服务器,以减少开发成本,提高客户体验。对于我们来说,使用云服务器部署私活、个人站点也是一个不错的选择。而华为云服务器价格、品质、售后都极为优秀,大家赶紧趁着双11优惠入手一台操练起来吧。

  • 相关阅读:
    JavaScript实现冒泡排序
    实测Tengine开源的Dubbo功能
    微信公众号消息接入(普通消息+模板消息)
    【Debian】报错:su: Authentication failure
    python经典百题之交换数组元素
    NIO学习
    latex常用组件--记录
    代码随想录算法训练营 动态规划part11
    算法通关村第二关-白银挑战反转链表拓展问题
    Web自动化测试(二)—— Selenium-API操作
  • 原文地址:https://blog.csdn.net/qq_20143059/article/details/127997497