虚拟机上传vsphere开机失败的问题处理

一、问题描述

从网上下载了一个做好的虚拟机文件,整个打包上传到vsphere的存储里面,然后添加到清单,开机时候报错,提示找不到磁盘。虚拟机源文件在本地的workstation可以正常打开并且开机使用,那也就是说明虚拟机文件是完整的,有可能存在版本兼容性问题。

1

二、通过workstation 上载虚拟机到vsphere

既然存在兼容性问题,通过vmware自家的软件应该可以解决这个问题,通过使用workstation 将该虚拟机上载到vsphere 6.0集群中,正常开机。

步骤:在workstation中将虚拟机停止,然后右键选中虚拟机之后选择【管理】->【上载】,分别填写上载目标vsphere的帐号密码和IP地址,下一步选择存储位置,完成之后开始上载即可。

以下是我本地的workstation 虚拟机文件截图,原来的虚拟机文件是很少的,但是因为本地下载过来之后会自动分段。

2

3

三、可选方法:更改硬件兼容性

也可以通过workstation的更改虚拟机硬件兼容性来解决,具体操作和上载类似(两个方法二选一),在选择虚拟机之后右键【管理】->【更改硬件兼容性】,选择对应版本,参考兼容产品列表,然后进行下一步,选择【创建此虚拟机的新克隆】,下一步开始转换。

转换完成之后,克隆的虚拟机就是更改了兼容性的新虚拟机,原机器没有作更改。将新虚拟机上传到vsphere中即可添加清单运行即可。

4

5

6

以上遇到的问题是本身虚拟机文件不存在问题,需要没有快照,有时候有快照会多存在很多问题,当然如果我们打开虚拟机本身只是需要里面的文件,我们其实可以直接通过将虚拟机硬盘挂载本地驱动器,直接浏览文件即可。

httpd配置用户访问认证

需求:单用户访问网站的某个目录,需要使用帐号密码来登录才能访问。

一、编辑虚拟主机的配置文件,添加目录级访问限制

<Directory "/var/www/html/demo">
  Options -Indexes FollowSymLinks
  AllowOverride AuthConfig
  Order allow,deny
  Allow from All

  AuthName "Login Notice" —— 认证时显示的提示
  AuthType Basic —— 认证类型
  AuthUserFile /etc/httpd/conf.d/htpasswd —— 用户配置文件
  require valid-user —— 限制为所有合法用户
</Directory>

二、用户认证配置文件
1.创建apache的验证用户

#htpasswd -c /etc/httpd/conf.d/htpasswd testuser 
黑色部分表示认证文件的路径,可以自己选定其他路径

回车后提示输入该用户的密码,输入两遍完成设置,第一次创建用户要用到 -c 参数,以后添加用户,就不用 -c 参数。

2.如果想修改某个用户的密码:

#htpasswd -m /etc/httpd/conf.d/htpasswd testuser

三、测试效果
1.认证页面效果如下

58-1

2.认证失败如下提示:

58-2

httpd配置gzip压缩

以下设置在 /etc/httpd/conf/httpd.conf 文件末尾加入即可。(不同方式安装的httpd可能主配置文件位置不同,请自行查找)

 

一、mod_deflate模块:文件压缩

官方文档:http://httpd.apache.org/docs/2.2/mod/mod_deflate.html

1.检查是否加载模块

LoadModule deflate_module modules/mod_deflate.so

2.设置压缩规则

<IfModule mod_deflate.c>

#开启压缩
SetOutputFilter DEFLATE

#以下文件不压缩,因为用处不大
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

#压缩所有文本类型的文件
AddOutputFilterByType DEFLATE text/*

#压缩脚本文件
AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript application/x-httpd-php

</IfModule>

 

二、mod_headers模块:过期时间设置

官方文档:http://httpd.apache.org/docs/2.2/mod/mod_headers.html

对指定的文件配置缓存的生存时间,去除mod_headers.so模块前面的注释,以下的86400单位秒,即24小时过期。

#文件缓存时间配置
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css)$">
Header set Cache-Control "max-age=86400"
</FilesMatch>

 

以上设置完成之后重启httpd服务,重新加载配置。

可以通过http://tool.chinaz.com/Gzips/ 工具检测是否开启gzip压缩。

可以通过谷歌浏览器开发者工具的Network选项来查看设置过期时间是否成功(查看头部请求)。