精灵商场项目(五)--虚拟机Linux使用+Nginx反向代理

本文详细介绍了虚拟机Linux的使用,包括Linux介绍、虚拟机配置、克隆、IP设置和Xshell连接。此外,还探讨了图片回显的实现方法和Nginx的反向代理功能,包括Nginx的安装、配置和域名代理的应用,最后讨论了项目发布流程。
摘要由CSDN通过智能技术生成

一、虚拟机Linux使用

1.1 Linux 介绍和使用

传送门

1.2 虚拟机配置

内存 : 2GB

硬盘 : 20GB

网络模式:桥接模式/NAT模式

在这里插入图片描述

1.3 检查是否正常连接

在虚拟机中 打开控制台 ifconfig 查看ip

在Windows测试连接状态: ping ip地址

1.4 虚拟机克隆

JL虚拟机中安装了很多插件和环境.为了保护环境不被破坏.所以需要克隆虚拟机备份数据 , 之后的操作全部在备份的机器上运行

选择 创建链接克隆

在这里插入图片描述

1.5 LinuxIP划分和链接

以上的IP地址表示在同一个网络空间内 , 如果不一致,则按照以下方式修改

虚拟网络编辑器恢复默认设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pKStn5Ic-1572869247963)(C:\Users\Tarena\Desktop\1\1572868974501.png)]

1.6 Xshell

Xshell是远程连接Linux系统的工具.可以进行文件传输.命令的编辑等一列的操作.和操作真实的Linux系统一致

1.6.1 连接步骤

  1. 获取服务器IP地址
  2. 获取服务器用户名和密码
  3. 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 正向代理

功能:帮助用户请求资源

特点:

  1. 用户清楚的知道访问的服务器地址信息.
  2. 服务器不清楚到底是谁访问的服务器.不能获取用户信息

微服务架构中,使用正向代理

3.3 Nginx 介绍

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务

特点:

  1. 开发语言: C语言

  2. 占用内存小 : 2M

  3. 并发能力强

  4. nginx可以当做负载均衡器使用(软件级) F5(硬件负载均衡器)

官网下载 : <http://nginx.org/en/download.html>

3.4 Nginx 安装和使用

安装时不要有中文,不要放C盘

占用端口:80端口

关于进程项说明:

1. 主进程: 主要提供反向代理服务的.

2. 守护进程: 防止主进程意外关闭.

使用命令 : 命令的执行需要在nginx.exe的根目录中运行

  1. 关闭 : Nginx -s stop
  2. 开启 : start nginx
  3. 重启 : nginx -s reload
  4. 批量关闭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命令实现项目打包

步骤:

  1. 在父工程 jl 的maven工具中 clean
  2. package 或者 install , 如图
  3. 打包成功后,会在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程序打开文件

  1. 开始/运行/输入regedit/回车
  2. 找到这个文件夹HKEY_CLASSES_ROOT\Applications\EverEdit.exe\shell\open\command
  3. 右击名称为“默认”的注册表项,修改其值为正确的Everdit安装路径的 .exe

若是别的程序出现这样的问题,也可以这样解决。不过,有的程序只是修改是搞不定的,需要删除注册表中相应程序的文件夹,然后重装相应的程序,可以解决问题。

7.FastStone Capture 软件

花式截图 , 编辑图片 , 录屏 , 放大镜功能 , 教学时候推荐使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值