博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【项目部署】JavaWeb项目部署到云服务器超详细流程
阅读量:4229 次
发布时间:2019-05-26

本文共 8317 字,大约阅读时间需要 27 分钟。

前言

之前买过SpringBoot+Netty的视频教程,看完之后,灵机一动。寻思着项目开发完毕,根据需求测试或者部署上线。这时候需要一台云服务器或者虚拟机,将我们辛辛苦苦编写的项目发布上去。这里就会涉及到Java方面的一些知识,jdk环境的部署。MySQL或者MariaDB的安装,以及TomcatNginx中间件的部署。当然也会涉及到linux方面的知识,文件传输工具以及可视化连接工具。

提前打针,本篇文章会涉及大量的图片。照顾入门的萌新,教程会很详细。也会涉及到一些开发工具简单使用,以及配置,基本上与linux服务器打交道。关于linux方面的知识,我之前也总结了不少文章,囊括基础命令以及系统管理,可以参考。如果有不足的地方,可以留言,共同进步。

正文

linux云服务器部署JavaWeb(app)项目,基于Centos7环境部署的,其它的linux环境可能有些操作命令有所不同。

一、云服务器的准备

服务器的选择,腾讯云或者阿里云,包年比较划算。只要做活动,新用户和学生用户优惠力度很大的。我之前优惠用完了,现在就用虚拟机做测试,有活动买便宜的云服务器。云服务器安全组配置这块,相当于一道防火墙,类似linux下的iptables防护,放通对外的端口。购买的云服务器会提供内网IP和公网IP,使用公网IP对外网可访问,部署自己的web项目到Tomcat,以及使用Nginx中间件做反向代理。(正式环境)

或者VMware虚拟机测试,有局限性,只能在局域网或者内网使用。测试玩玩是比较舒服的,不用担心环境突然暴毙,快照功能很实用。(测试环境)

二、文件传输工具的使用

2.1、WinSCP

WinSCP,官网下载即可。

在这里插入图片描述

2.2、FileZilla

FileZilla,去官网下载即可,速度有点慢,我也会提供度盘链接。

第一种是绿色版,解压即可用;第二种是安装板,安装后即可使用。

在这里插入图片描述

2.3汁源提取

最后已给出自己下载的两款远程连接工具的链接。如果度盘被爆菊,可以回复我补档。

FileZilla_3.51.0_win64.zipFileZilla_3.51.0_win64-setup.exeWinSCP-5.11.2-Setup

链接:

提取码: pjvu

三、命令行工具的简单使用

在这里插入图片描述

这两款远程连接工具都很好用,xshell有个小毛病,强制性更新,不然不给用。

老流氓了,着实有点苟。

在这里插入图片描述

我之前也写过如何解决,参考下面文章

SecureCRT双软件

Xshell6Portable_50151远程连接工具

个人习惯使用xshell,所用一般写的文章都是用xshell演示的。工具嘛,使用的顺手那就是极好的。下面只做简单的截图例子,涉及到一些基础的linux命令。使用xshell时,可能受系统环境影响缺失xx.dll文件,安装vc++得以解决。

在这里插入图片描述
链接:
提取码: p9zt

当然也可以参考我的这篇文章,【好记性不如烂笔头】linux基本命令总结,后期会持续优化更新。

四、云服务器配置JDK环境

4.1、解压与安装

解压jdk文件,下载合适的jdk版本,也可以直接yum安装openJDK。

#比如jdk-1.8,只是举例子,不是真的链接tar -zxvf jdk-1.8

创建一个存放Java环境的目录

mkdir /usr/java

将解压后jdk移动到创建的目录

mv jdk /usr/java
4.2、配置环境

配置jdk环境变量

#编辑配置文件vim /etc/profile#环境变量export JAVA_HOME=JDK实际安装路径export CLASS_PATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin#编辑完后记得保存:wq 命令保存,不保存退出 q! 命令#配置文件生效source /etc/profile#测试配置,查看jdk的版本java -version

五、部署Tomcat服务器

5.1解压 Tomcat
tar -zxvf tomcat-8.0
5.2进入bin目录,启动Tomcat

进入bin目录,这里可以命名Tomcat,我习惯取apache2

在这里插入图片描述
启动与关闭
在这里插入图片描述

#启动Tomcat服务器./startup.sh
#关闭Tomcat服务器./shutdown.sh
5.3测试

云服务器配置安全组放通8080端口,第8部会讲到如何配置Nginx反向代理到80端口,测试并且访问Tomcat服务器。

#你的虚拟机IP地址或者是公网iphttp://ip:8080

六、数据库MariaDB的安装或者MySQL

6.1、在线安装MariaDB

这里选择MariaDB,在线安装龟速,都懂得。此时官网最新版本为10.5.9,你可以选择自己需要的版本。我之前写过一个10.5.6的版本安装教程,侧重Windows下的,方便自己本地开发测试。当然,你也可以用虚拟机,安装Linux版本的。

减少时间成本,快速定位Linux版本

Repository Configuration Tool.配置工具
在这里插入图片描述

使用MariaDB仓库配置工具

在/etc/yum.repos.d/下创建MariaDB.repo文件

#MariaDB 10.5 CentOS repository list - created 2021-04-24 14:57 UTC#http://downloads.mariadb.org/mariadb/repositories/[mariadb]name = MariaDBbaseurl = http://yum.mariadb.org/10.5/centos7-amd64#gpgkey后面的离线安装会用到rpm --import 导入gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1
# 安装服务与客户端After the file is in place, install MariaDB with:执行安装命令sudo yum install MariaDB-server MariaDB-client
# 官网提供的一些命令# 如果你改变了现有的仓库配置,需要执行以下命令sudo yum clean all# 更新配置主要的版本sudo sed -i 's/10.2/10.3/' /etc/yum.repos.d/MariaDB.repo# 安装MariaDB服务sudo yum install MariaDB-server
6.2、离线安装MariaDB

离线安装,准备好需要的rpm包。官网的教程很完善,根据步骤一步一步走。

rpm -ivh rpm软件包

官网下载

随便选择一个版本点进去

找到Repository Configuration Tool.然后点进去

接着上一步,向下滑动,找到installing MariaDB with yum

在这里插入图片描述
选择MariaDB的Linux版本,个人习惯用Centos,就选了Centos版本
在这里插入图片描述

环境准备,版本选择MariaDB Installation (Version 10.1.21) via RPMs on CentOS 7

在这里插入图片描述

选择version-10.1.21,进入rpm包环境准备

在这里插入图片描述

需要准备的rpm包

Here are the detailed steps for installing MariaDB (version 10.1.21) via RPMs on CentOS 7.
The RPM’s needed for the installation are all available on the MariaDB website and are given below:

# 事先可以下载好如下的rpm包,使用远程连接工具上传的自己的Linux服务器。# 然后按照官网的步骤进行安装jemalloc-3.6.0-1.el7.x86_64.rpmMariaDB-10.1.21-centos7-x86_64-client.rpmMariaDB-10.1.21-centos7-x86_64-compat.rpmgalera-25.3.19-1.rhel7.el7.centos.x86_64.rpmjemalloc-devel-3.6.0-1.el7.x86_64.rpmMariaDB-10.1.21-centos7-x86_64-common.rpmMariaDB-10.1.21-centos7-x86_64-server.rpm

执行步骤 Step by step installation:

依赖环境安装

#按照步骤来,首先使用yum确定环境,然后使用rpm安装1) First install all of the dependencies needed. Its easy to do this via YUM packages: yum install rsync nmap lsof perl-DBI nc2) rpm -ivh jemalloc-3.6.0-1.el7.x86_64.rpm3) rpm -ivh jemalloc-devel-3.6.0-1.el7.x86_64.rpm4) rpm -ivh MariaDB-10.1.21-centos7-x86_64-common.rpm MariaDB-10.1.21-centos7-x86_64-compat.rpm MariaDB-10.1.21-centos7-x86_64-client.rpm galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm MariaDB-10.1.21-centos7-x86_64-server.rpm

在线安装yum配置repo提供了gpg-key,复制导入gpgkey,执行如下命令。访问外网会有点慢,耐心等待…

rpm --import gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

七、MariaDB安全设置与客户端连接调试

执行命令脚本

mysql_secure_installation

八、图片服务器以及反向代理

云服务器安装图片服务器的注意事项以及Nginx反向代理Tomcat服务器。

配置过后无需再开通安全组的8080端口,直接代理到了80端口。

upstream servers {
server 内网ip:8080;}server{
listen 80; server_name localhost; #SSL BEGIN #配置SSL,SSL默认端口协议为443 listen 443 ssl; #我这里设置自己的静态ip,本机可以使用127.0.0.1或者localhost,远程就配置服务器公网ip server_name 192.168.0.233; ssl on; ssl_certificate ssl/server.crt;#服务端证书 ssl_certificate_key ssl/server.key;#服务端私钥 ssl_session_cache shared:SSL:1m;#设置共享会话缓存大小 ssl_session_timeout 10m;#配置session有效时间10分钟,貌似官方推荐设置 ssl_prefer_server_ciphers on;#优先采取服务器算法 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#启用指定协议 #加密算法 ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_verify_client optional_no_ca;# 开启客户端证书校验 ssl_client_certificate ssl/ca.crt;#设置验证客户端证书 ssl_verify_depth 6; #校验深度 ssl_trusted_certificate ssl/ca.crt;#设置CA为受信任证书 #减少点击劫持 add_header X-Frame-Options DENY; #禁止服务器自动解析资源类型 add_header X-Content-Type-Options nosniff; #防止XSS攻击 add_header X-Xss-Protection 1; #SSL END location / {
#反向代理Tomcat服务器 proxy_pass = http://servers; #配置proxy_set_header请求头 proxy_pass_header User-Agent; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forw $proxy_add_x_forwarded_for; proxy_set_header Upgrade-Insecure-Requests 1; proxy_set_header X-Forwarded-Proto https; } #配置静态资源 #待解决:实战中,验证码图片未找到尚未解决 location ~ .*\.(js|css|html|gif|jpg|jpeg|png|pdf|ico|exe|doc|zip|MD5)$ {
#配置反向代理 proxy_pass http://server01; #gzip压缩相关配置 gzip on; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; autoindex on; expires 30d;#设置过期时间30天 #break; } }

九、springboot工程打包

采用sts(springboot官方对JavaEE for eclipse进行的整合工具,集成了springboot插件);

或者使用JavaEE for eclipse自行安装springboot插件;再或者使用IDEA工具,对Java开发者很友好,尤其是自动保存机制很舒服。

右键选中maven项目,进行maven install打包,根据pom.xml文件配置生成jar包或者war包。然后,通过winSCP上传到linux下Tomcat服务器的webapp下,运行Tomcat会自行解压war包。

当然也可以在本地运行maven命令进行打包,打包方式有很多,最终实现即可。最后,在浏览器打开设置好的服务器地址,进行访问测试。

采用maven打包,设置排除掉springboot自带的Tomcat,使用自己部署的Tomcat

org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
/** * 新建一个WarApplication.java文件调用原始的Application.class。 * @Descrption 使用外置Tomcat启动application类 * */public class WarStartApplication extends SpringBootServletInitializer {
@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
//引用application.class return builder.sources(Application.class); } }

十、打包文件上传到云服务器并且进行Tomcat部署

10.1、SQL可视化连接工具,推荐使用如下两款

版本虽然老了点,但是依然很实用,下面的汁源自行获取。

链接:

提取码: jg7q
在这里插入图片描述

10.2、SQLylog可视化工具

MySQL或者MariaDB专属,功能单一点,很实用。

sakila以及world是我之前在MySQL官网下载的两个demo实例。麻雀虽小,五脏俱全。我也给出链接,自行获取。

链接:

提取码: szk6
在这里插入图片描述

10.3、Navicat可视化工具

功能强大,可选择性多。MySQL、PostgreSQL、Oracle、SQLite、SQL Server以及MariaDB都可以支持连接。

在这里插入图片描述

新建连接,云服务器配你的公网IP,虚拟机就配置你的内网IP,或者Windows下本地连接localhost。

在这里插入图片描述

功能全是很强大,自行摸索

在这里插入图片描述
MySQL两个demo实例,上面提到过
在这里插入图片描述

右键选择逆向数据库到模型,以world表为例子转换

在这里插入图片描述

十一、app云打包

app云打包这块,如果没需求,可以战略性忽略。

使用HBuilderX云打包功能配置,然后下载到本地。

个人推荐使用老版本的HBuilder,用起来更顺手。

十二、容器化相关知识

docker的安装,当然也可以参考官网。

可以参考菜鸟教程

k8s的安装

这里推荐参考k8s中文网,有很多详细的精品教程

这篇文章,centos7的版本应该是适用的,顺带提一点centos6.5安装docker有点麻烦,需要升级内核。好吧,生命在于折腾。

持续更新,不定期优化,未完待续。。。

小声哔哔

只要你找个好老板,找一份好工作,好好工作。

辛勤工作,早起晚归,经常加班。
早晚有一天,这个老板,会更有钱。换更好的车,换更好的房。
再给我一个机会,我想回到昨天,因为我安眠药吃多了。

好吧,上面的引用都是玩笑话。用心创作,学无止境。你会发现,了解的越多,不了解的越多。好了,到此为止就是此篇文章的全部内容了,能看到这里的都是帅哥靓妹啊!!!善于总结,其乐不穷。好记性不如烂笔头,多收集自己第一次尝试的成果,收获也颇丰。你会发现,自己的知识宝库越来越丰富。原创不易,一键三连是我创作的动力。

转载地址:http://fkcqi.baihongyu.com/

你可能感兴趣的文章
axi总线介绍
查看>>
Linux内核中ioremap映射的透彻理解
查看>>
ffs的另外一种实现方法
查看>>
strtol的用法
查看>>
工作队列的使用
查看>>
让vim显示空格,及tab字符 vim 多行注释
查看>>
利用mmc_test.c研究mmc模块
查看>>
tasklet、wait_queue、completion、work_queue用法总结
查看>>
int (*func(int)) (int *,int)
查看>>
在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel
查看>>
Linux内核同步机制API函数:宏:spin_lock_init ( )
查看>>
driver_register 理解
查看>>
copy_from_user && copy_to_user
查看>>
device_register
查看>>
Android上C++对象的自动回收机制分析
查看>>
从spin_lock到spin_lock_irqsave
查看>>
sdio 驱动
查看>>
vim 常用用法
查看>>
更好就足够了吗?| 驱动变革
查看>>
技术选型指南
查看>>