一、虚拟机Linux使用
1.1 Linux 介绍和使用
1.2 虚拟机配置
内存 : 2GB
硬盘 : 20GB
网络模式:桥接模式/NAT模式
1.3 检查是否正常连接
在虚拟机中 打开控制台
ifconfig
查看ip在Windows测试连接状态:
ping ip地址
1.4 虚拟机克隆
JL虚拟机中安装了很多插件和环境.为了保护环境不被破坏.所以需要克隆虚拟机备份数据 , 之后的操作全部在备份的机器上运行
选择
创建链接克隆
1.5 LinuxIP划分和链接
以上的IP地址表示在同一个网络空间内 , 如果不一致,则按照以下方式修改
在
虚拟网络编辑器
中恢复默认设置
1.6 Xshell
Xshell是远程连接Linux系统的工具.可以进行文件传输.命令的编辑等一列的操作.和操作真实的Linux系统一致
1.6.1 连接步骤
- 获取服务器IP地址
- 获取服务器用户名和密码
- Xshell远程连接工具都是加密传输公钥和私钥
1.6.2 远程连接方式
新建会话后连接远程虚拟机
选择 SSH 协议
填写虚拟机的 ip
二、实现图片回显
2.1 图片回显思路
说明:如果需要图片进行回显,则需要准备一个图片的虚拟路径.
磁盘路径: D:\JL-SOFTWARE\images\2019\11\04\abc.jpg
虚拟路径: http://image.jL.com:80/2019\11\04\abc.jpg
解决问题: 本地磁盘和虚拟路径的映射
2.2 编辑properties文件
配置图片地址信息 key=value 都是字符串类型
image.localDir=D:/JL-SOFTWARE/images/
image.localDirUrl=http://image.jl.com/
2.3 重构FileService
重构Service,实现动态获取数据
@Service
@PropertySource("classpath:/properties/image.properties")
public class FileServiceImpl implements FileService {
//动态获取属性值 将数据信息写入properties文件中
//取值前提: spring容器必须管理配置文件
@Value("${image.localDir}")
private String localDir;
@Value("${image.localDirUrl}")
private String localDirUrl;
@Override
public EasyUIFile fileUpload(MultipartFile uploadFile) {
EasyUIFile easyUIFile = new EasyUIFile();
//1.判断文件是否为图片类型 abc.jpg
String fileName = uploadFile.getOriginalFilename();
//将字符串转化为小写
fileName = fileName.toLowerCase();
if (!fileName.matches("^.+\\.(jpg|png|gif)$")) {
//表示不满足规则
return EasyUIFile.fail();
}
try {
//2.判断是否为恶意程序 转化为图片对象
BufferedImage bufferedImage =
ImageIO.read(uploadFile.getInputStream());
int width = bufferedImage.getWidth();
int height = bufferedImage.getHeight();
if (width == 0 || height == 0) {
return EasyUIFile.fail();
}
//3.实现分文件存储 按照yyyy/MM/dd/
String dateDir =
new SimpleDateFormat("yyyy/MM/dd/")
.format(new Date());
//生成文件目录 D://image/yyyy/MM/dd
String fileDirPath = localDir + dateDir;
File dirFile = new File(fileDirPath);
//如果没有目录,则创建目录
if (!dirFile.exists()) {
dirFile.mkdirs();
}
//4.生成文件名称防止重名 name.type
int index = fileName.lastIndexOf(".");
//.jpg
String fileType = fileName.substring(index);
String uuid = UUID.randomUUID().toString();
//拼接文件名称
String realFileName = uuid + fileType;
//5.实现文件上传
uploadFile.transferTo(new File(fileDirPath + realFileName));
//定义url虚拟地址 http://image.jl.com/yyyy/MM/dd/abc.jpg
String url = localDirUrl + dateDir + realFileName;
//暂时使用网络地址代替真是url地址.
easyUIFile.setWidth(width)
.setHeight(height)
.setUrl(url);
} catch (Exception e) {
e.printStackTrace();
return EasyUIFile.fail();
}
return easyUIFile;
}
}
三、反向代理
3.1 nginx反向代理
3.2 正向代理
功能:帮助用户请求资源
特点:
- 用户清楚的知道访问的服务器地址信息.
- 服务器不清楚到底是谁访问的服务器.不能获取用户信息
微服务架构中,使用正向代理
3.3 Nginx 介绍
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务
特点:
开发语言: C语言
占用内存小 : 2M
并发能力强
nginx可以当做负载均衡器使用(软件级) F5(硬件负载均衡器)
官网下载 :
<http://nginx.org/en/download.html>
3.4 Nginx 安装和使用
安装时不要有中文,不要放C盘
占用端口:80端口
关于进程项说明:
1. 主进程: 主要提供反向代理服务的.
2. 守护进程: 防止主进程意外关闭.
使用命令 :
命令的执行需要在nginx.exe的根目录中运行
- 关闭 :
Nginx -s stop
- 开启 :
start nginx
- 重启 :
nginx -s reload
- 批量关闭nginx服务项 :
taskkill /f /fi "imagename eq nginx.exe"
3.5 Nginx反向代理入门案例
http{
#反向代理 服务地址
server {
#默认端口
listen 80;
#服务名称
server_name localhost;
#配置具体路径 /拦截全部请求 / 利用正则实现路径的拦截
#就是请求的转发
location / {
#转向文件夹目录
root html;
#系统默认跳转页面
index index.html index.htm;
}
}
}
3.6 配置图片服务器
#配置图片服务器
server {
listen 80;
server_name image.jl.com;
#执行转发过程
location / {
root D:/JL-SOFTWARE/images;
}
}
3.7 关于Nginx日志问题
说明:如果nginx启动成功之后,会形成logs文件
如果nginx不能正常启动,则手动创建logs文件目录
四、nginx域名代理
需求分析 : 当用户访问manage.jl.com时要求跳转到后台系统首页
4.1 修改hosts文件
实现域名和IP地址映射
文件路径 :
C:\Windows\System32\drivers\etc
127.0.0.1 localhost
127.0.0.1 image.jl.com
127.0.0.1 manage.jl.com
127.0.0.1 www.jl.com
127.0.0.1 sso.jl.com
4.2 修改nginx配置文件
#搭建后台服务器.
server {
listen 80;
server_name manage.jt.com;
location / {
#配置代理路径
proxy_pass http://localhost:8091;
}
}
4.3 nginx.conf 配置文件
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#反向代理 服务地址
server {
#默认端口
listen 80;
#服务名称
server_name localhost;
#配置具体路径 /拦截全部请求
location / {
#转向文件夹目录
root html;
#系统默认跳转页面
index index.html index.htm;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#配置图片服务器
server {
listen 80;
server_name image.jl.com;
#执行转发过程
location / {
root D:/JL-SOFTWARE/images;
}
}
#搭建后台服务器.
server {
listen 80;
server_name manage.jl.com;
location / {
#配置代理路径
proxy_pass http://localhost:8091;
}
}
}
4.4 实现页面效果
五、项目发布
5.1 项目打包
在 idea 将项目打成jar/war , 利用Maven工具
mvn install
命令实现项目打包步骤:
- 在父工程
jl
的maven工具中clean
package
或者install
, 如图- 打包成功后,会在target生成war包,如图
5.2 项目发布
命令的执行需要在war包所在目录中运行
运行 :
java -jar jl-manage-0.0.1-SNAPSHOT.war
关闭 : ctrl+c
随手笔记
1.linux操作命令
(1)检查IP地址 : ifconfig
inet addr
里的为ip地址
2.windows cmd 命令
(1)查看ip : ipconfig
(2)测试连接状态: ping ip地址
3.虚拟机选择网络连接类型
设置 | 说明 |
---|---|
使用桥接模式网络连接 | 相当于将虚拟机直接接入局域网中,这时会独占IP地址.可以与本机通过局域网通信, 特点:所有的在局域网中的IP都可以访问虚拟机 |
使用网络地址转换 (NAT) | 相当于在网络环境中会开辟一块全新的网络空间.只有主机能够访问, 特点:NAT模式只有主机访问,其他人通过IP地址禁止访问 |
使用仅主机模式网络连接 | Guest在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等) |
不使用网络连接 | 不为虚拟机配置网络连接。 |
自定义(Windows 主机)或已命名的网络(Linux 主机) | (仅限远程虚拟机)选择特定虚拟网络。 |
4.VMware Workstation 14 Pro 的许可证激活密钥
FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
5.VMware安装Centos7教程
6.解决win7无法默认选择的Everdit程序打开文件
- 开始/运行/输入regedit/回车
- 找到这个文件夹
HKEY_CLASSES_ROOT\Applications\EverEdit.exe\shell\open\command
- 右击名称为“默认”的注册表项,修改其值为正确的Everdit安装路径的 .exe
若是别的程序出现这样的问题,也可以这样解决。不过,有的程序只是修改是搞不定的,需要删除注册表中相应程序的文件夹,然后重装相应的程序,可以解决问题。
7.FastStone Capture 软件
花式截图 , 编辑图片 , 录屏 , 放大镜功能 ,
教学时候推荐使用