将Spring+SpringMVC+MyBatis(简称ssm)项目及数据库完整的部署CentOS7

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Nginx是一款高性能的Web服务器,最初由俄罗斯程序员Igor Sysoev开发,自2004年问世以来,凭借其高性能、高可靠、易扩展等优点,在反向代理、负载均衡、静态文件托管等主流场合得到了广泛的应用。
  1. 本章目标
    将SSM项目及数据库完整的部署CentOS7上

    jdk1.8+tomcat8.5+mysql5.7

1.什么是nginx
Nginx是一款高性能的Web服务器,最初由俄罗斯程序员Igor Sysoev开发,自2004年问世以来,凭借其高性能、高可靠、易扩展等优点,在反向代理、负载均衡、静态文件托管等主流场合得到了广泛的应用。

2.CentOS7中使用yum安装Nginx的方法

1) 添加 nginx 官方提供的 yum 源(需要联网且时间较长)

 rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm

2) 使用 yum 安装 nginx

 yum install nginx

 注1:yum方式安装nginx,它的安装根目录为/etc/nginx
 注2:查看nginx版本
      rpm -qa | grep nginx

3) 启动及设置开机启动

 systemctl start nginx.service
 systemctl enable nginx.service

4) 设置防火墙开放 80 端口

 firewall-cmd --zone=public --add-port=80/tcp --permanent
 firewall-cmd --reload && firewall-cmd --list-port

5) 测试 nginx 是否可被访问,应该显示nginx的欢迎界面

  http://服务器IP地址:80/

3.mysql数据库数据导出/导入
Navicat导出表结构及少量数据

4.SSM项目部署到虚拟机

本案例采用tomcat双节点方式进行案例演示(tomcat集群模式)

注0:由于tomcat双节点都是部署在同一个虚拟机中,请配置两个不同的端口号,以免冲突;
注1:重启虚拟机后,发现有时候linux中的tomcat启动失败,应该将tomcat服务在mysql服务启动后启动。重要
注2:可将WEB项目部署到不同的tomcat中,可做集群测试

  1. 将SPA项目压缩并上传到/usr/nginx/html目录,再解压
    mkdir /usr/nginx/html
    unzip crm.zip

    重启nginx

    重新修改window中的hosts文件

    注1:通过虚拟域名访问,还要修改window的hosts文件添加虚拟域名映射,文件位置如下:

        C:\Windows\System32\drivers\etc\hosts
        另外,此文件有可能出现由于当前用户权限不够,出现无法修改的情况?解决方案
        将此文件复制到d硬盘任一目录,修改后,再复制替换C:\Windows\System32\drivers\etc\hosts原文件  
    

http://192.168.163.128:8080/ssm/user/userLogin?username=admin&password=123

5.通过nginx对tomcat进行集群及代理
#进入conf.d目录,并对default.conf进行备份
cd /etc/nginx/conf.d && cp default.conf default.conf.bak

#修改default.conf,添加tomcat集群和动态代理配置

systemctl restart nginx && systemctl status nginx

注1:查看nginx的访问日志和错误日志

   /var/log/nginx/access.log
   /var/log/nginx/error.log 

注2:查看nginx版本

   rpm -qa | grep nginx









1.CentOS7安装mysql三种方式
1.yum
2.tar.gz
3.*.deb安装包

附录一:linux 里rpm包到底是干什么用的
Linux RPM全称是“RedHat Package Manager”,最早是Red Hat公司开发的,后来在CentOS、Fedora、SUSE都用它。
而rpm包则是软件编译完成后按照RPM机制打包起来的一个文件,可以用rpm命令安装的一个软件安装包,
它省去了Linux软件安装中编译的步骤,安装成功后软件就可以用了。

附录二:centos7中虚拟域名设置
vim /etc/hosts

附录三:
在进行Nginx+Tomcat 负载均衡的时候遇到了这个权限问题,在error.log日志中,我们可以看到如下:
connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting to upstream
解决方案参考《解决Nginx的connect() to 127_0_0_18080 failed (13 Permission denied) while connect_Osheep-昔日暖阳-CSDN博客_connect() to 127_0_0_18080 failed (13 permission.mht》

附录四:hbuilderX打包vue项目白屏问题
将项目目录下的config文件夹里的index.js文件中,将build对象下的assetsPublicPath中的“/”,改为“./”后,再打包生成的 dist 文件
build: {

// assetsPublicPath: '/',//修改前
assetsPublicPath: './',//修改后

}

附录五:hbuilderX打包vue项目,element-ui的icon图标无法正常显示问题
问题:使用vue-cli3脚手架搭建的项目,在打包文件上服务器的时候,其他的css,js样式都能正确加载出路径,
但是element的icon图标却不能正常加载出来。

打包的路径
事实上是打包时候读取的文件路径多了两层;
找到build文件的utils.js 中有打包的路径,看看generateLoaders();
Extract CSS when that option is specified, 指定该选项时提取CSS
发现少了个公共路径,加上pubilcPath
if (options.extract) {

 return ExtractTextPlugin.extract({
   use: loaders,
   fallback: 'vue-style-loader',
   // 解决icon路径加载错误
   publicPath:'../../'
 })

} else {

 return ['vue-style-loader'].concat(loaders)

}

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
136 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
9天前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
14 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
11天前
|
Java 数据库连接 API
springBoot:后端解决跨域&Mybatis-Plus&SwaggerUI&代码生成器 (四)
本文介绍了后端解决跨域问题的方法及Mybatis-Plus的配置与使用。首先通过创建`CorsConfig`类并设置相关参数来实现跨域请求处理。接着,详细描述了如何引入Mybatis-Plus插件,包括配置`MybatisPlusConfig`类、定义Mapper接口以及Service层。此外,还展示了如何配置分页查询功能,并引入SwaggerUI进行API文档生成。最后,提供了代码生成器的配置示例,帮助快速生成项目所需的基础代码。
|
18天前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
24 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
13天前
|
Java 数据库连接 Maven
Spring整合Mybatis
Spring整合Mybatis
|
1月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
存储 Java 数据库
SPRING 数据库密码加密存储 在配置文件的两种方式 第一种
SPRING 数据库密码加密存储 在配置文件的两种方式 第一种
1785 0
|
存储 Java 数据库
SPRING 数据库密码加密存储 在配置文件的两种方式 第二种
PropertyPlaceholderConfigurer SPRING 数据库密码加密存储 在配置文件的两种方式 第二种
1909 0
|
存储 Java 数据库
SPRING 数据库密码加密存储 在配置文件的两种方式 下一篇第二种方式
SPRING 数据库密码加密存储 在配置文件的两种方式
1571 0