权限管理系统demo(springboot+elementUI)内附部署到云服务器步骤
目录
前言
环境和软件
目录结构
项目截图
购买云服务器
宝塔Linux面板(快速搭建)
部署项目到服务器上
安装软件
修改配置文件
生成jar包
上传jar包
打包前端代码
上传dist文件内容
配置nginx服务器
测试前端
运行jar包
导入数据库文件
项目演示
关于远程连接
前言
这是一个不完整的权限管理系统的demo(如果你想改成其他系统的crud也可以,大同小异)
后端使用spring boot:spring boot其实就是善于使用注解和配置文件的spring,是它的简化版,快速高效容易修改配置。
前端vue+elementUI:element-网站快速成型工具,很好的框架。
环境和软件
使用软件是IntelliJ IDEA 2019.3 x64 +HBuilderX
运行环境 jdk1.8+tomcat 9.0+nginx 1.12+mysql 5.6+redis 6.2.4
目录结构
话不多说,先看一下目录结构。
目录文件不细说,一般展开来后都是这种结构:
如果需要调用一些方法(加密,国际化,换主题等),最好是多创建一个工具类的包来存放。
项目截图
运行一下项目,项目截图如下:
登录界面
首页
角色管理界面
电脑显示屏尺寸问题,之前在另一台电脑尺寸比较大,大家自行调整。
项目演示完毕,只是一个简单的demo,最初步搭建起来的一个框架,还有很多需要完善的地方,适合新手,同样也提供给我自己记录学习。
购买云服务器
接下来是把项目部署到云服务器上,我使用的是阿里云服务器,学生认证的话免费使用两个月,不想认证的话新人1核2G一年也不到一百块,有经济能力的可以考虑。
一般进入阿里云官网,点击云服务器ECS就可以查看自己想要购买的云服务器信息,或者查看自己已经创建了的服务器实例信息。阿里云链接如下:
https://www.aliyun.com/activity/new?utm_content=se_1009238830
一般的云服务器都是使用linux系统(看个人喜好选择版本),centos7版本应该是比较多人用的,慎选centos6版本!下面是我的系统版本描述。
首先我们需要下载一些辅助工具,让后续的操作更加简单快捷方便。
学过linux的一般都知道XShell和Xftp这两个远程连接工具,可以免费下载,链接如下:
https://www.netsarang.com/zh/xshell-download/
远程连接后对命令的发送和文件的传输都非常的方便,尤其是Xftp传输文件对小白非常友好。
宝塔Linux面板(快速搭建)
接下来还有一个非常重要的推荐,宝塔linux面板
https://www.bt.cn/download/linux.html
Centos安装脚本(进入命令行输入下面命令)
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装完后,会在命令行给出你的账户名和密码,还有登录地址,类似这种
username: sd14gfh5
password: 78e2f2a4外网面板地址: http://xxx.xx.xx.xx:8888/d4hh5t5e
内网面板地址: http://xxx.xx.xx.xx:8888/d4hh5t5e
访问宝塔面板之前,还需要进入云服务器中对应的实例,配置安全组规则。开放8888访问权限(8888是宝塔面板的默认端口,登录之后可以自行修改)其他的端口如果需要也是在安全组规则中开放,才能进行访问。
如果有一些软件开放了端口之后还是无法远程连接或者访问的话,应该是软件的默认配置问题,需要修改相应的配置文件来允许访问,像我遇到的redis,在后面会说到。
接下来根据给定的地址和用户名密码可以进入宝塔Linux面板
可以看出,使用面板可以进行许多一键完成的操作,可以实现管理数据库,安装环境和软件,部署网站,操作命令行等等,功能强大。如果我们想要快速部署,新手建议使用。
部署项目到服务器上
在上面我们提到成功运行该项目,需要的环境有:
- jdk1.8
- tomcat 9.0
- nginx 1.12
- mysql 5.6
- redis 6.2.4
同样地,部署到云服务器中也需要这些东西。
安装软件
1.首先是jdk,这是必不可少的,一般看你电脑上的jdk版本和平时常用的jdk版本,使用哪个版本就去云服务器上下载对应的版本,但由于我的云服务器上有自带的 jdk1.8,用java -version可以查看自己已经安装,就没有重新安装。
如果想要自行安装,可以参考下面这篇:
https://blog.csdn.net/qq_21187515/article/details/90295031
2.其他的像tomcat,nginx,mysql,redis都可以直接在宝塔Linux面板中下载使用。
如果没有找到对应的型号或者想要自己安装的话,可以去官网下载对应的压缩安装包(Linux版本)然后上传到Linux的指定文件夹中,如/export/software(仅供参考), cd 进入该安装包的文件夹后,对压缩包进行解压
tar -zxvf 压缩包名称(解压之前先在目录中ls查看文件名称,然后复制过来,防止打错)
解压之后会得到一个同名的文件夹,有些软件直接cd进入文件夹执行运行文件就可以了,有些则需要修改环境变量或者配置文件,可以参考上面那篇centos安装jdk的文件。
现在,安装环境和软件都已经搞定,接下来就是把自己的项目部署到系统中。
修改配置文件
首先,修改项目中各个模块的配置文件,主要是数据库和redis的配置。
生成jar包
修改完配置后,确认项目无误,点击右侧的maven按钮,clean之后进行package打包操作,把项目制作成jar包。package之后生成的jar包生成在该项目目录下的target文件夹下
上传jar包
找到jar包后,通过xftp上传到云服务器的Linux中。
接下来先忽略jar包,打包前端代码。
打包前端代码
打包代码非常简单,运行npm run build命令之后,会生成一个dist 文件夹。
上传dist文件内容
把dist文件上传到Linux文件夹中
配置nginx服务器
接下来配置nginx服务器,修改nginx目录下的nginx.conf文件
修改nginx的nginx.conf在server节点中
//root后的路径是你刚才上传了dist内容的文件夹
location / {root /export/data/html;index index.html index.htm;
}
然后是配置nginx代理,同样是修改修改nginx目录下的nginx.conf文件
修改nginx的nginx.conflocation /auth {rewrite ^/auth/(.*) /$1 break;#保留代理之前的hostproxy_set_header Host $host;#保留代理之前的真实客户端ipproxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#在多级代理的情况下,记录每次代理之前的客户端真实ipproxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;#表示客户端真实的协议(http还是https)proxy_set_header X-Forwarded-Proto $scheme;#9000是auth服务的端口号proxy_pass http://127.0.0.1:9000;
}location /permission {rewrite ^/permission/(.*) /$1 break;#保留代理之前的hostproxy_set_header Host $host;#保留代理之前的真实客户端ipproxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#在多级代理的情况下,记录每次代理之前的客户端真实ipproxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;#表示客户端真实的协议(http还是https)proxy_set_header X-Forwarded-Proto $scheme;#9001是permission服务的端口号proxy_pass http://127.0.0.1:9001;
}
测试前端
接下来重启nginx服务器,输入
http://你的公网地址
应该可以看到一个初步的页面
运行jar包
前端部署完成后,利用刚才的jar包运行Java程序
运行java程序
#加上前面的 nobup 和后面的 & 号可以让程序在后台运行
nohup java -jar permission-server-0.0.1-SNAPSHOT.jar &
项目运行之后,查看是否在正在运行
查看运行的java程序ps -ef|grep java
命令行运行效果如下:
导入数据库文件
这时候前后端都已经部署完成,别忘了导入数据库文件,使用面板中的数据库管理比较方便。
项目演示
前端演示的地址:http://120.79.161.120/#/
可以看见本来运行在本地的spring boot项目已经成功在云服务器上运行
关于远程连接
最后关于远程连接的问题,如果想要在本地连接云服务器,我使用本地的RedisDesktopManager尝试连接遇到的一个问题就是无法连接,其原因一般是没有开启安全组规则,如果开启安全组规则之后还是无法连接的话,一般是因为 redis 的默认配置文件redis.conf中的
protected-mode 默认设置为yes(即默认开启保护默认)
把 protected-mode 设置为no (也就是关闭保护模式)
同时把bind 设置为 0.0.0.0,也可以把daemonize 设置为yes (后台运行)
以上操作后,本地的RedisDesktopManager就可以连接到云服务器的redis了。
本地连接云redis详情可以参考下面文章:
https://www.cnblogs.com/impyu/p/12613689.html
到此结束,有错误请指正,菜鸟一枚,很多东西深入了都不太会,文章仅供参考。
权限管理系统demo(springboot+elementUI)内附部署到云服务器步骤相关推荐
- Babylonjs 最全demo集合 (内附源码)
Babylonjs 最全demo集合 (内附源码) 为了方便学习Babylonjs引擎,整理了130多个示例,并且所有的例子全部本地化了,可以离线部署.以后会分别讲解. 一.源码模块介绍 Animat ...
- springboot项目之部署阿里云服务器--简版
部署阿里云服务器(简易版) 1.你需要有服务器的ip以及所对应的密码,我就不再教.这里推荐mobaxterm或xhell或putty. 2.服务器上要安装相应的软件,jdk(对应的版本).maven. ...
- spring项目搭建云服务器,Spring Boot项目打包并部署到云服务器
Spring Boot项目打包并部署到云服务器 一.云服务器的环境 OS: CentOS 7 Jdk 1.8 Spring Boot自动集成Tomcat,不需要单独配置 二.本地Spring Boot ...
- 坑:jmeter部署AWS云服务器时出现连接超时Non HTTP response code: org.apache.http.conn.HttpHostConnectException...
背景: jmeter脚本部署到云服务器(AWS EC2)公网上时,启动jmeter脚本运行了5个小时才运行完毕,后面发现脚本报错timeout(如图),找了很久不知道原因,后面进入脚本发现全部在报错. ...
- Java项目部署到云服务器的思路
Java项目部署到云服务器的思路 1 部署项目的前提条件 1.1 购买云服务器 我购买的是腾讯云的服务器,第一年享优惠88一年 cpu好像两核的,作为入门级的也算够用了 如果第二年该续费的时候,我记得 ...
- 将node项目部署到云服务器详细教程 原创
前言: 需要有node项目,并且能在本地服务器成功运行成功 一.购买云服务器 云服务器种类很多,价格都差不多,我这里购买的是ecs计算型云服务器,配置2核4G5M的配置基本就可以运行项目. 服务器购买 ...
- arm搭建云手机教程_教你从0开始部署阿里云服务器,阿里云服务器搭建网站教程...
教你从0开始部署阿里云服务器,阿里云服务器部署网站的办法,阿里云搭建项目的办法,阿里云服务器搭建网站教程 1.购买 登录官网点击下面链接: 企业上云甄选partner.aliyun.com 查看云服 ...
- ssm项目直接加html文件,如何把ssm项目和vue项目部署在云服务器(上)
如何把ssm项目和vue项目部署在云服务器(上) 如何把ssm项目和vue项目部署在云服务器(上) 一.引入 URL的概念理解 在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL( ...
- hexo部署到云服务器
title: hexo部署到云服务器 云服务器部署 1.查看本文章的前提是已经在本地搭建好了hexo框架的博客 2.服务器系统centOS7.6(华为云) 服务器环境搭建 使用yum安装nginx作为 ...
最新文章
- solaris10修改IP
- python基础之import模块导入和包的调用
- python nlp包_StanfordNLP,让你在 Python 里一手掌握 53 种自然语言分析
- Python学习笔记(基础知识点一)
- Python——web.py模块错误【UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xab in position 285】解决方案
- Android Camera 流程学习记录(五)—— Camera.takePicture() 流程解析
- 小米5安卓使用微信X5 Blink内核调试
- hadoop 配置文件
- 成都睿铂x云南省地矿测绘院:丽江玉龙高精度地籍免像控案例分享
- android translateanimation动画,Android 动画之TranslateAnimation应用详解
- 微信小程序开发上线注意事项
- 正高、正常高和大地高的区别
- 神经元的细胞体内有什么,神经元的细胞体在哪里
- 分享几个做CTF的网站
- python最早诞生于什么国_类型学最早诞生于哪个学科?()
- 异步传输模式 Asynchronous Transfer Mode
- 双软企业认定(软件产品/软件企业认定)
- python写的程序怎么打包手机app_Python Kivy(App开发) Windows安装打包步骤
- 红尘烟火,在等谁的相濡以沫?
- 哥玩的不是劲舞,是寂寞【古龙版】
热门文章
- 利用charles伪造媒体的本地贴片广告和flash广告
- 开发疣猪飞行摇杆A10C(第一章)
- 小草科技4G/5G多卡聚合融合通信设备在消防行业领域解决方案
- 取消wps右键菜单_WPS演示技巧—制作浪漫表白动态演示PPT
- GLSL三种基本类型(着色器语言三种变量)
- 机器学习斯坦福公开课第一讲
- 蚂蚁金服商业化资深总监韩鸿源:数据库是技术能力,云是使用方式,两者不应是竞争关系...
- 美赛真题和优秀论文(2019-2021)
- 文末赠书5本 | 附源码 | 三等奖作品 | 基于RA4M2和阿里云物联网平台的智能卧室小管家
- 【单片机毕业设计】【mcuclub-108】衣柜除湿照明 | 智能衣柜 | 智能储物柜 | 衣柜环境监测 | 多功能衣柜【仿真设计】