centos6虚拟主机(CentOS虚拟机)
本文目录一览:
- 1、如何在CentOS 6上设置nginx虚拟主机
- 2、httpd简介
- 3、我想把虚拟机上安装CentOS6.系统做成一个主机空间,本机可以访问上传网站到空间中,请问具体要怎么配置?
- 4、centos 6,7系统常见故障排错及修复方法
- 5、9月28日 centos6上httpd2.2基本配置 2和https的实现
- 6、虚拟机上装的centos6怎么用
如何在CentOS 6上设置nginx虚拟主机
就和windows操作记事本一样了 要退出 先 按下 esc 退回到命令模式,在 输入 :q上面显示了 --- insert ---- 这是插入模式 要修改内容,先进入 insert 模式,修改要改的内容,然后按 esc 退回到 命令模式,按 :wq 写入退出即可
httpd简介
httpd具有以下特性:
其中并行处理模式MPM(多路处理模块)包含了三种运行模式。分别为prefork、worker和event。
profork是一个两级进程模型,父进程管理子进程,每个进程响应一个请求。由一个主进程负责生成多个子进程以及回收子进程、创建套接字、接收请求,并将请求派发给某个子进程进行处理。每个子进程只负责处理一个请求。其工作模型:预先生成几个空闲进程,等待用于响应用户请求,设定最大空闲和最小空闲;所有已建立的套接字由客户端进程和服务期端子进程进行通信,一旦出现空闲,会回收子进程。
特点:进城之间完全独立,无需担心线程安全问题。但进程占用的系统资源较多,在处理高并发请求时无法快速处理。
其在httpd2.2为的配置:
worker是一个三级结构、多进程多线程的模式,其在启动时也预先fork了几个子进程,每个子进程能够生产若干个服务线程和若干个监听线程,每个服务线程处理一个请求,监听线程负责接入请求并将其传递给服务线程处理和应答。线程比起进程会更轻量,因为线程通常会共享父进程的内存空间,因此内存的占用会减少些,在高并发的场景下表现比prefork模式更好。其工作模型:
worker模式的特点:线程比起进程会更轻量级,因此占用用内存少,处理高并发请求时性能更好。但是当一个线程出现问题的时候会导致同一进程下的线程也会出现问题。在keep-alive长连接的方式下,某个线程会被一直占用,即使中间没有请求,也需要等待到超时才会被释放。
在httpd2.2中的配置
event是一个事件驱动模型,是一个两级结构的多进程模型,父进程管理子进程,子进程通过event-driven机制直接响应多个请求。event模式解决了在keep-alive模式下,线程被长期占用直到超时,从而导致资源浪费的问题。
在event模块中,有一个专门的线程来管理这些keep-alive类型的线程,当接收到真实的请求时,会将请求传递给服务线程,执行完毕后,会将对应的服务线程释放,这样就能实现线程的异步非阻塞。
在httpd2.2中的配置:
示例 :
Centos6系统下实现httpd-2.2的安装,并分别实现prefork、worker、event等几种工作方式.
1、centos6上安装装httpd-2.2
prefork模式
实现prefork模式。httpd的默认运行模式为prefork,查看其运行模式为:
在/etc/httpd/conf/httpd.conf文件中查看prefork的设置
启动httpd服务并查看相关进程状态:
修改/etc/httpd/conf/httpd.conf中的prefork配置
重启httpd服务并常看进程状态:
worker模式
修改配置文件/etc/sysconfig/httpd配置文件,将文件中HTTPD=/usr/sbin/httpd.worker这一句取消注释。然后重启服务查看进程状态。
然后修改/etc/httpd/conf/httpd.conf文件中的worker配置
event模式
修改配置文件/etc/sysconfig/httpd配置文件,将文件中HTTPD=/usr/sbin/httpd.worker这一句修改为HTTPD=/usr/sbin/httpd.event。然后重启服务查看进程状态。
修改配置文件/etc/httpd/conf/httpd.conf,添加evnet配置
查看进程状态
一次完整的http请求处理过程:
在一次完整的http请求过程中,会出现两种报文,分别是http的请求报文request和http的响应报文response。
以上各字段的含义:
http协议的请求方法共有以下7中
状态响应码是http请求处理返回的结果状态标识,属于响应报文中的内容,熟知常见的状态响应码能帮助我们快速定位故障及进行相应的排错,状态码的类型大体可分为下面几类:
常用的状态码:
httpd服务的主配置文件/etc/httpd/conf/httpd.conf。此文件内容通常以下三大部分组成:
除主配置稳健以外,其余的相关配置文件包括:
这些配置文件在httpd2.4中通常在主配置文件中通过 IncludeOptional conf.d/*.conf 、 Include conf.modules.d/*.conf 进行调用响应目录下的配置文件。路径为相对路径,其根目录由主配置文件中的Serverroot进行设定。
在主配置文件中,修改httpd服务监听IP和接口的格式为:
注意:
示例:
持久链接是指tcp连续建立后,每个资源获取完成后不全断开连接,而是继续等待其它资源请求的进行。对并发访问量较大的服务器,长连接机制会使得后续某些请求无法得到正常响应;此时,设置较短的持久连接时长,以及较少的请求数量来缓解。具体设置如下:
示例:
在httpd服务的主配置文件中,“'Main' server”部分,定义web文档路径映射。
常用的站点访问控制即只有两种:一种是基于文件系统路径的访问控制机制;另一种是基于URL的站点访问控制机制。两者可同时设置
基于文件系统路径:
1、基于源地址实现访问控制,在此设置的目录下所有文件都遵循此处的指令设置。格式为:
2、针对单个文件实现访问控制。其格式为:
3、DSO动态共享对象机制
在/etc/httpd/conf/httpd.conf主配置文件中使用配置指令实现模块加载:
模块文件路径可使用相对路径:相对于ServerRoot(默认为/etc/httpd)
例如:
4、根据模式匹配到的文件实现访问控制。正则表达式要启用引擎,因此建议不使用;其格式为:
基于URL路径:
定义URL的目录,表示在此设置的目录下所有文件都遵循此处的指令设置;
"Directory"中各选项的参数
示例
新建/web/html目录,编辑修改httpd服务,使其能够web访问/web/html目录下的index.html目录文件:
httpd的虚拟主机是利用httpd自带的VirtualHost功能来实现的。一个httpd服务器上配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录。虚拟主机的配置方式为:
在/etc/httpd/conf/httpd.conf主配置文件中修改,或者在//etc/httpd/conf.d/*.conf目录下新建配置文件。
httpd虚拟主机有三种实现方式:
1、基于IP方式的实现:需要给每个虚拟主机设置至少一个IP地址。
示例:
利用virtualhost基于IP的方式实现/var/www/html目录和/web/html目录下的网页文件的同时访问
2、基于port的方式实现:需要为每个虚拟主机使用至少一个独立的port。
示例:
基于port的方式实现/var/www/html目录和/web/html目录下的网页文件的同时访问。
3、基于FQDN的方式实现:为每个虚拟主机使用至少一个FQDN。其配置方式为:如果是httpd-2.2,需要在配置文件中添加 NameVirtualHost IP:PORT
示例:
修改window系统的hosts文件,并测试
基于用户的访问控制是通过http协议自身的认证来实现的。http协议的认证有两种方式:
由于并不是所有浏览器都支持摘要认证,所以一般使用较多的是basic认证方式。其设置过程如下:
1、用htpasswd命令生成提供账号和密码存储的文本文件
htpasswd
语法 :
选项:
设置过程:
2、编辑配置文件,设置用户认证,然后重启httpd。配置文件既可以是修改主配置文件/etc/httpd/conf/httpd.conf,也可以在/etc/httpd/conf.d/文件加下新建配置文件。
访问服务器测试
有大量用户需要认证时,可使用基于域的认证方式,把用户加入到域中,将用户划分为相应的域组,并根据域组来做相应的访问控制。
1、先创建域组文件:
2、修改配置文件,然后重启服务,登陆访问测试:
我想把虚拟机上安装CentOS6.系统做成一个主机空间,本机可以访问上传网站到空间中,请问具体要怎么配置?
虚拟机与本机桥接。
使用SSH软件的SFTP就可以把本地的文件传到Centos中。
centos 6,7系统常见故障排错及修复方法
情景一:
centos7上 vmlinuz-3.10.0-693.el7.x86_64 内核文件损坏
1,故障状态
2,修复方法,挂载光盘进入救援模式。
选择:Troubleshootimg ——Rescue a Centos system——1 (注意查看光盘挂载路径)
3,开启一个子shell 查看光盘是否挂载(centos6光盘需要手动挂载)找到光盘下的vmlinuz文件复制到根目录下。在利用uname-r生成版本号。
确认新的文件生成后记得要输入sync同步磁盘读写,然后输入exit退出重启,即修复完成。
情景二,
centos6 ,/boot/initramfs-2.6.32-696.el6.x85_64.img 内核文件损坏
一,故障状态
(加载完菜单后续不显示)
二,修复方法
挂载光盘进入救援模式
选择Rescue installed system ——OK——OK——NO——continue——OK——OK
1,开启一个子shell
切根到当前系统正在的根目录
使用mkinitrd /boot/initramfs-`uname -r`.img `uname -r`生成该文件(过程比较缓慢,不能终止。生成之后不要忘记sync同步读写磁盘,)exit退出之后重启即修复成功。
情景三,
grub下的1.0阶段被损坏
故障状态:认为系统以无启动功能,硬盘无法加载,直接进入下一级可引导界面
1,修复方法,光盘引导,进入救援模式。
选择Rescue installed system ——OK——OK——NO——continue——OK——OK
开启一个子shell (注意查看当前系统根在所在分区)
1,先切根至硬盘目录下,执行grub-install 命令使其生成文件。最后sync同步读写磁盘。退出即修复成功)
2,grub下stage1.5阶段损坏
故障状态 :从此硬盘启动黑屏,在第一行有一个光标,但是无法进入系统,也不会去读取下一个可引导设备
得找到boot分区所存在的位置,下图的位置为第一个硬盘的第一个分区
退出救援模式重启即修复成功
情景四:
误删了整个/boot分区的修复方法及故障状态
grub无法读取配置文件,在开机的时候会默认进入grub的命令行界面
1,修复方法:光盘引导,进入救援模式
选择Rescue installed system ——OK——OK——NO——continue——OK——OK
开启子shell
1,我们首先切根至硬盘所在的根,在手动将光盘挂载,光盘挂载后将光盘目录下的vmlinuz文件拷贝至/boot分区下。
2,此时我们看到/boot分区中还只有一个文件,接下来要一个个生成/boot下的文件
initramfs.ing ·umame-r` 用此命令可以生成丢失的initramfs文件
grub-install /dev/sda 此命令用于生成grub下的文件夹
3,此时我们可以看到grub里面的文件差不多得修复了,唯独缺少了一个和启动页面相关的grub.conf。文件。(注此文件需要手动建)
4,使用vi创建一个grub.conf文件,格式如下。
保存后面sync同步磁盘读写。退出shell重启修复成功
情景五。
/etc/下fstab文件损坏及故障状态,修复方法
故障状态:因为无法挂载分区,启动故障
1,解决方案,此时因为fstab文件丢失系统会出现以下提示查不到根文件系统
2,使用fdisk -l 命令可以查看哪个分区是根
3,新建文件夹,如果不知道根分区所在位置可以一个一个进行挂载测试
4,将根分区挂载后编辑被损坏的/etc/fstab文件
使用vi /mnt/rootfs/etc/fstab 进行编辑 【注:此处文件系统格式写文件时最好使用blkid命令查看]
重启进入系统,然后再把其他的分区找到,然后写入fatab文件,修复成功。
注意:如果根和boot分区是用的lvm管理的,那么在救援模式下不可以直接使用,得需要使用以下命令激活vg,然后操作就和以上步骤一样了。
vgchange -ay vgname 激活卷组。
情景六,
init程序被误删的故障状态及修复方法
故障状态:内核可以初始化但是无法进入登陆页面,出现一个sh的命令行
修复方法,进入救援模式,安装upstart包,并查看init程序是否重新生成
完结。 个人学习笔记仅供参考。
9月28日 centos6上httpd2.2基本配置 2和https的实现
Satisfy ALL|Any
ALL 客户机IP和用户验证都需要通过才可以
Any客户机IP和用户验证,有一个满足即可
有三种实现方案:
基于ip:为每个虚拟主机准备至少一个ip地址
基于port:为每个虚拟主机使用至少一个独立的port
基于FQDN:为每个虚拟主机使用至少一个FQDN
注意:一般虚拟机不要与main主机混用;因此,要使用虚拟主机,一般先禁用main主机
禁用方法:注释中心主机的DocumentRoot指令即可
实验步骤
总结: 基于FQDN的虚拟主机是生产中最常用的,一般我们在搭建虚拟主机时,要将main主机禁用,但如果不禁用,基于ip和端口号创建虚拟主机时main主机不会失效,访问main主机的主站点文件时仍然可以访问到,但如果基于FQDN创建时,main主机就会失效,这个时候如果访问main主机的主站点时,就会跳到虚拟主机的主站点,并且谁是第一个虚拟主机时就会跳到谁那里。因 此创建虚拟主机时最好将main主机禁用。当基于FQDN创建虚拟主机后,如果用,默认访问的是第一个虚拟主机的主网站文件。
4、访问这个网站就可以看到服务器的状态信息了
①http协议
http/0.9, http/1.0, http/1.1, http/2.0
http协议:stateless 无状态
服务器无法持续追踪访问者来源,也就是当你第二次访问这个服务器时,服务器又不知道你是谁了。
解决http协议无状态方法
cookie :客户端存放,分为两种,一种为重cookie,一种为轻cookie,比如你在淘宝上买东西放到购物车里的东西,服务器会将你的登录信息和一些购物车里的信息以cookie的形式发送给你,并存储在你的主机上,当你下次用同一个主机去访问淘宝时,你会携带这个cookie信息,这时服务器就知道你的身份了,这样购物车里的东西就不会丢失,这种称为重cookie,轻cookie只存放你的登录信息。cookie是服务器端生成后传给客户端的。在浏览器的选项/设置---高级设置----网页内容高级设置中可以看到cookie。
session :服务器端存放,cookie要配合session使用,因为cookie只是存放在特定的主机,换了主机之后你之前访问的信息,比如购物车里面的信息又丢失了,session的作用就是将你的cookie里面的登录信息和网站访问记录到一个session表里,并且存储到服务器上,下次你登录淘宝的时候,服务器就会和session里面记录的一些登录信息对比,发现是你的登录信息,就识别出了你,你的访问记录及购物车里面的东西不会丢失。
http事务:一次访问的过程
请求:request
响应:response
②HTTP请求报文和响应报文
③报文语法格式:
request报文
method request-URL version
headers
entity-body
response报文
version status reason-phrase
headers
entity-body
method: 请求方法,标明客户端希望对服务器资源执行的动作。
Method 方法:
GET:从服务器获取一个资源
HEAD:只从服务器获取文档的响应首部
POST:向服务器输入数据,比如字符串等,通常会再由网关程序继续处理
PUT:将请求的主体部分存储在服务器中,如上传文件
DELETE:请求删除服务器上指定的文档
TRACE:追踪请求到达服务器中间经过的代理服务器
OPTIONS:请求服务器返回对指定资源支持使用的请求方法
version:
HTTP/major.minor,比如HTTP/1.1---目前用的比较多的协议类型
status:
三位数字,如200,301, 302, 404, 502; 标记请求处理过程中发生的情况
reason-phrase:
状态码所标记的状态的简要描述
headers:
每个请求或响应报文可包含任意个首部;每个首部都有首部名称,后面跟一个冒号,而后跟一个可选空格,接着是一个值
entity-body:请求时附加的数据或响应时附加的数据
④http协议状态码分类
status(状态码):
1xx:100-101信息提示
2xx:200-206成功
3xx:300-305重定向
4xx:400-415错误类信息,客户端错误
5xx:500-505错误类信息,服务器端错误
常用的状态码
200:成功,请求数据通过响应报文的entity-body部分发送;OK
301:请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新位置;Moved Permanently,表示永久重定向,在配置文件里设置网站的别名时就是永久的重定向。
302:响应报文Location指明资源临时新位置Moved Temporarily,是临时重定向。
304:客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端;Not Modified,表示服务器端是利用缓存把资源发送给客户端,可以用ctrl+f5强制刷新。
401:需要输入账号和密码认证方能访问资源;Unauthorized,基于basic认证登录时会在日志里面发现这个状态码。
403:请求被禁止;Forbidden,一个原因是服务器的配置文件里面设定了允许哪些主机访问,另外一个原因可能是你访问的文件夹文件系统的权限不足。
404:服务器无法找到客户端请求的资源;Not Found
500:服务器内部错误;Internal Server Error
502:代理服务器从后端服务器收到了一条伪响应,如无法连接到网关;Bad Gateway
503 :服务不可用,临时服务器维护或过载,服务器无法处理请求
504:网关超时
总结:method是客户端请求服务器端要做什么,而状态码是服务器端返回给客户端的状态信息。
更多信息可以参考火狐浏览器:
⑤http协议首部
首部的分类:通用首部、请求首部、响应首部、实体首部、扩展首部
通用首部:
Date: 报文的创建时间
Connection:连接状态,如keep-alive, close
Via:显示报文经过的中间节点(代理,网关)
Cache-Control:控制缓存,如缓存时长
MIME-Version:发送端使用的MIME版本
请求首部:
Accept:通知服务器自己可接受的媒体类型
Accept-Charset:客户端可接受的字符集
Accept-Encoding:客户端可接受编码格式,如gzip
Accept-Language:客户端可接受的语言
Client-IP: 请求的客户端IP
Host: 请求的服务器名称和端口号
Referer:跳转至当前URI的前一个URL
User-Agent:客户端代理,浏览器版本
curl [options] [URL...]
-A/--user-agent string 设置用户代理发送给服务器
-e/--refererURL 来源网址
--cacertfile CA证书(SSL)
-k/--insecure 允许忽略证书进行SSL 连接
--compressed 要求返回是压缩的格式
-H/--header line自定义首部信息传递给服务器
-i显示页面内容,包括报文首部信息
-I/--head 只显示响应报文首部信息
-D/--dump-header file将url的header信息存放在指定文件中
--limit-rate rate 设置传输速度
--basic 使用HTTP基本认证
-u/--user user[:password]设置服务器的用户和密码
-L 如果有3xx响应码,重新发请求到新位置,进行强制重定向
-ofile 将网络文件保存为指定的文件中
-O使用URL中默认的文件名保存文件到本地
-0/--http1.0 使用HTTP 1.0
-C -选项可对文件使用断点续传功能
-c/--cookie-jar file name 将url中cookie存放在指定文件中
-x/--proxy proxyhost[:port] 指定代理服务器地址
-X/--request command 向服务器发送指定请求方法
-U/--proxy-user user:password 代理服务器用户和密码
-T 选项可将指定的本地文件上传到FTP服务器上
--data/-d 方式指定使用POST方式传递数据
elinks工具:
elinks[OPTION]... [URL]...
-dump: 非交互式模式,将URL的内容输出至标准输出
-source:打印源码
用法和links相同。
示例
使用deflate_module模块压缩页面优化传输速度
适用场景:
(1) 节约带宽,额外消耗CPU;同时,可能有些较老浏览器不支持
(2) 压缩适于压缩的资源,例如文本文件
Level of compression (Highest 9 -Lowest 1)
DeflateCompressionLevel 9
示例
https:http over ssl
SSL会话的简化过程
(1) 客户端发送可供选择的加密方式,并向服务器请求证书
(2) 服务器端发送证书以及选定的加密方式给客户端,这个证书是用CA的私钥加密的服务器的公钥以及证书的有效期等信息,也就是CA数字签名的证书。
(3) 客户端取得证书并进行证书验证
如果信任给服务器发证书的CA,客户端会实验得到CA的公钥
(a) 验证证书来源的合法性;用CA的公钥解密证书上数字签名
(b) 验证证书的内容的合法性:完整性验证
(c) 检查证书的有效期限
(d) 检查证书是否被吊销
(e) 证书中拥有者的名字,与访问的目标主机要一致
(4) 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换
(5) 服务用此密钥加密用户请求的资源,响应给客户端
实现过程如下:
将http请求转发至https的URL
重定向
Redirect [status] URL-path URL
status状态分为两种:
Permanent(永久重定向):Returnsa permanent redirect status (301) indicating that the resource has moved permanently
Temp(临时重定向):Returnsa temporary redirect status (302). This is the default
示例:
HSTS:HTTP Strict Transport Security
服务器端配置支持HSTS后,会在给浏览器返回的HTTP首部中携带HSTS字段。浏览器获取到该信息后,会将所有HTTP访问请求在内部做307跳转到HTTPS,而无需任何网络过程
支持HSTS后只需要两步就实现跳转,而且只有第一次跑到服务器端进行跳转,下一次访问就直接在浏览器端就进行跳转了,浏览器已经记住了这个网站的服务器支持HSTS,这样既提高了效率又比较安全
HSTS preload list
是Chrome浏览器中的HSTS预载入列表,在该列表中的网站,使用Chrome浏览器访问时,会自动转换成HTTPS。Firefox、Safari、Edge浏览器也会采用这个列表,也就是解决了上面的第一次跑到服务器端进行跳转的问题,直接在浏览器端就进行了跳转,更安全,不过这个是浏览器自己设置的功能。
实验
虚拟机上装的centos6怎么用
在这里VMware Workstation软件的安装就不说了,安装完成后选择新建虚拟机,选择自定义模式,然后下一步选择稍后安装操作系统。
接下来设置虚拟机账户,存储位置,按照自己的爱好设置,完成后会让你虚拟磁盘,选择创建一个新的虚拟磁盘,磁盘大小自己随意设置,将其存储为单个文件。
完成了虚拟机的创建,编辑此虚拟机选择你要安装的CentOS6.5镜像开始安装系统。
进入系统安装页面,首先会进行硬件的检测,这个大多数会选择跳过(skip)因为这个时间要消耗很久,跳过后选择语言,按自己的爱好选择即可。
接下来要设置基本存储设备,选择Basi Storage Devices和设置主机名自己按需求设置。
时间设置,在国内一般都选择上海,下一步设置系统的root密码,接下来布局选择创建自定义布局,划分系统的根分区和swap分区。
最后,选的安装系统所需要的软件包,可以选择安装系统时安装即 Customize now,进入选择软件包页面选好软件包,开始安装,安装完可直接进入系统。
发表评论
暂时没有评论,来抢沙发吧~