Linux部署Servlet代码

一、为何要部署网站

  1. 我们做出的网站是希望这个网站能够被别人访问到的。但是没有外网ip,自己的电脑,其他人是无法直接访问的
  2. 为了解决这个问题,我们需要把项目部署到云服务器上(云服务器上有外网ip),而云服务的操作系统多是使用Linux

二、如何部署

2.1 准备Java web的环境

如何安装 + 为什么要准备环境

  1. 为什么要准备环境:web项目运行时,因为会依赖一些程序,所以我们需要把依赖的程序安装上
  2. 如何安装:【使用 yum(centos) 或 apt(ubuntu)直接进行安装】 或 【Windows把下载好的压缩包到Linux上】
  3. 通过yum或apt命令安装
    • yml、apt是什么:都是包管理器。包管理器类似于手机的【应用商店】,Linux一些大佬把软件都放在一个服务器上,我们可以直接通过【包管理器】去下载安装
    • 步骤
      • 确定包名:先搜索,确定软件包的完整名称:yum list | 软件包名apt search 软件包名
        • 版本:注意,不同系统上加载出来的版本可能是不一样的,Ubuntu的软件包会更新一些,centos会比较老一些。
        • 速度:因为要去访问一个远端的服务器,响应速度会比较慢
      • 安装
        • 管理员身份:首先要确保处在“管理员身份(root用户)下”,因为只有管理员才能去安装软件
          centos已经是使用root登陆了,可以直接入安装。Ubuntu可以通过【sudo su -】这个命令切换到管理员用户,注意之后要用exit命令退出root用户。
        • 使用安装命令:yum install(centos)或 apt install 软件名(ubuntu)
          使用这个命令后会先从网络加载(速度与当前云服务器的网速有关),加载好之后会提醒你,这次要下载XXX内容,解压之后占据XXX空间,问你是否确认安装,敲y表确认。如果想不过来问,就在安装命令后加 -y
  4. Windows传压缩包到Linux上
    • Windows上下载好压缩包:因为直接拖的安装方式,必须要是单个文件,不能是目录,所以要先打个压缩包
      • 在官网上下载对应软件包的压缩包,或者把已有的软件包压缩成压缩包
      • 格式方面推荐用zip,rar格式对Linux不太友好
    • 把压缩包传到Linux
      • 直接把压缩包拖到Xshell上即可
      • 注意,有的系统是无法直接拖上去的,需要安装一个额外的软件 Irzsz。安装完之后,就可以直接拖了
        centos下使用【yum install lrzsz】,ubuntu则使用【apt install lrzsz】,rz表示从“Windows传到linux”,sz表示 “从Linux传到Windows”
    • 解压缩压缩包:使用【uzip命令】解压缩,如果没有需要安装一下。使用【yum install unzip】或【apt install unzip】安装

安装JDK

  1. 方法:使用 yum(centos) 或 apt(ubuntu)直接进行安装。此处不需要配置环境变量,因为通过yum安装,默认配置好了,其他安装方式不一定。
    在这里插入图片描述

安装Tomcat 并启动Tomcat:

在这里插入图片描述
在这里插入图片描述

安装Mysql

  1. 安装思路
    • 安装方法:使用包管理器来安装
    • 安装MariaDB:此处我们安装的是 mysql 5.7版本,不过说说是MySQL,其实安装的是 MariaDB
      • MariaDB是MySQL原作者在MySQL被Oracle收购后(收购后MySQL由Oracle维护),在MySQL源代码的基础上搞的一个分支(依旧由社区维护),两者是兼容的,用哪个都行。又因为Centos上直接装MySQL比较麻烦,所以此处我们安装的是MariaDB
  2. 教程
    • 什么是换源:我们使用yum或apt是通过包管理区去大佬的服务器上下载,这个服务器就叫【源】,源有很多。在云服务器上配置你要访问哪个服务器下载就是在【配置源】
      • 比如下载apt下载mysql,默认的源上只有8.0,如果想要安装5.7,就需要【换源】
    • Ubuntu如何换源:使用【vim /etc/apt/sources.list】命令,把里面旧的源配置删了后,把新的源直接全部复制上去

2.2 在云服务器上部署网站

  1. 调整数据库的连接:因为之前的代码练的是自己电脑上的mysql,现在是要连云服务器上的mysql,所以我们要修改ip、端口、密码之类的设置,要求和云服务的一致
    在这里插入图片描述
  2. 构造数据库:云服务器上的数据库已经安装好了,但是并没有数据,没有数据是无法让我们部署过去的程序跑起来的。数据的创建,直接把sql语句复制上去即可。
  3. 打包程序成war包:Maven首次打包是需要下载些依赖的
    在这里插入图片描述
  4. 把打好的war包上传到Tomcat的webapps目录下
    在这里插入图片描述
  5. 访问:根据访问路径,去浏览器上访问
    • 路径:公网Ip:8080/context path/application path/servlet path
    • 关于图片的加载:程序部署到云服务上之后,因为云服务的带宽有限,背景图片可能会加载地比较慢(图片越大越慢)
    • 本地可以正常运行,但部署后无法访问:本地能正常运行不等于部署后能正常运行
      • 一个程序能正常运行需要【代码没有错误】+ 【数据库正确】+ 【依赖的环境正确,比如Tomcat、jdk、mysql】,本地运行正确只能保证【代码没有错误】
      • 如何确认哪里有问题:去查看修改时间最新的日志
  6. 共用服务器的情况
    • 环境只要搭建一份就行,不需要重复安装
    • war包的名字 和 mysql的数据库名 不要冲突
    • war包都放到同一个Tomcat下

其他

查看Tomcat日志

  1. 为什么要查看日志:查错
  2. 进入到Tomcat目录下的logs目录:/root/program/apache-tomcat-8.5.49/logs
  3. vim 打开:如vim catalina.out,这表示用vim打开 catalina.out 日志

访问Tomcat的欢迎页面

  1. 首先,开发端口:启动了Tomcat后,直接输入【公网IP:端口号】是无法被直接访问的。因为云服务器上部署的服务器程序,要想被外界访问,需要先开放端口

    • 为什么要开放端口,才能被外界访问:提高服务器的安全性
      • 云服务器确实可以被外面的普通用户访问到,这也意味着黑客可以随便攻击,安全性较低。于是云服务器厂商为了提高你服务器的安全性就引入了防火墙/安全组这样的概念,来限制端口对外的访问情况。
      • 轻量级服务器上是防火墙,ECS云服务器上则是安全组
  2. 如何开放:去控制台的安全组/防火墙上手动添加规则

    • 不要打开所有的端口,需要用什么就去打开什么:尤其是mysql的3306和redis的6379不要随便打开,很容易被攻击
      在这里插入图片描述

访问MariaDB

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值