虚拟空间,也称虚拟主机(Virtual Host Virtual Server)是使用特殊的软硬件技术,把一台计算机主机分成一台台”虚拟”的主机,每一台虚拟主机都具有独立的域名和IP地址(或共享的IP地址),具有完整的Internet服务器功能,是使用特别的软件和硬件技术,把一台真实的物理电脑主机分割成多个的逻辑存储单元,每个单元由于没有物理实体,但是每一个物理单元都能像真实的物理主机一样在网络上工作。单独的域名、IP地址(或共享的IP地址)、完整的Internet服务器功能。虚拟主机的关键技术在于,即使在同一台硬件、同一个操作系统上,运行着为多个用户打开的不同的服务器程式,互不干扰。 理解: 虚拟主机用于学习和研究方面。很多人建设网站,用于学习某些方面的知识和记录积累。网站上面主要把自己遇到的问题和解决的方法进行记录,以备以后的使用和研究。同时也是与其他人进行知识的。这些都不需要很大的带宽,内存等,而且首要的一点是使用方便。还有就是自己做网站来进行测试,所以选择虚拟主机是个不错的选择。 虚拟主机用于个人博客类型的网站。这些类型网站主要用于个人的生活和爱好的方面来进行建设,也不需要选择很高的配置,主要是来展示个人的心得和生活。主要是用来自己看和对自己生活的。选择虚拟主机简单,方便,小巧,非常的实用。 用于中小型的企业展示和单页营销型的网站。对于很多的中小企业,他们的网站主要用来展示企业的基本情况,或者产品的特定时间的营销。并不涉及到网上的在线交易。所以选择虚拟主机来说也是非常的合适,便于管理和信息的发布。 安装Apache服务 修改配置 做虚拟主机 需要VirtualHost标签 192.168.20.133 是当前服务器ip 创建响应的目录和对应的网页文件 利用hosts文件做简单的域名解析 启动服务并验证 修改虚拟主机的端口 新增的端口尽量大一些 避免与系统服务的端口相冲突 重启服务 验证 先增加一个ip 修改配置 重启 访问测试 编辑用户个人主页的设置 all 表示所有用户的家目录下的public_html目录的访问都需要验证 设置web服务器域名 及域名解析 创建用户个人首页 调整selinux、给权限 设置验证密码 启动Apache并进行访问测试 用浏览器访问 apr 主要是提供apr-utils和httpd必备的lib文件 源码安装参数释义: 服务控制 启动 关闭: 重启: 重启 如果使用restart 不会报错 但是 没有效果 Prefork 处理一定数量的请求时 需要更多的系统资源 对请求的处理效率较低 如果是很多请求的情况下 会将请求放在队列中 一直等待前边的处理完毕 关于进程和线程 不动的可以看https://blog.csdn.net/weixin_43557605/article/details/101101551 Worker 如果使用keep-alive的长连接方式,某个线程会等到到超时才会被释放,如果过多的线程被这样占据,会导致在高并发场景下系统无服务线程可用 Event 三种工作模式中 最好的event模式 所以 apache模型优化 一般都是想把apache适应的模型 切换为event 查看 切换(通过编译安装进行模式切换)
1. 关于apache
2. 虚拟主机
2.1 什么是虚拟主机
加入某企业用Apache作为web服务器,如果没有虚拟主机,想要两个域名的网站 www.test.com www.abc.com 则需要两个服务器 如果这两个网站 都不太占据资源 比如展示型网站 此时 用两个服务器 有点太浪费主机资源 我们可以将两个网站都做在同一个Apache服务器上 以节省资源 这种技术 称之为虚拟主机 一个Apache服务器可以具有多个网站及域名2.2 虚拟主机的作用
2.3 Apache虚拟主机的实现
[root@localhost ~]# yum -y install httpd
2.3.1 基于域名的虚拟主机
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 349 <VirtualHost 192.168.20.133> 350 DocumentRoot /var/www/html/test 351 ServerName www.test.com 352 </VirtualHost> 353 <VirtualHost 192.168.20.133> 354 DocumentRoot /var/www/html/abc 355 ServerName www.abc.com 356 </VirtualHost>
DocumentRoot 此域名的网页目录的绝对路径
ServerName 虚拟主机的域名[root@localhost ~]# mkdir -p /var/www/html/{test,abc} [root@localhost ~]# echo "test" > /var/www/html/test/index.html [root@localhost ~]# echo "abc" > /var/www/html/abc/index.html
[root@localhost ~]# vim /etc/hosts #追加两行 192.168.20.133 www.test.com 192.168.20.133 www.abc.com
[root@localhost ~]# systemctl start httpd [root@localhost ~]# curl https://www.test.com test [root@localhost ~]# curl https://www.abc.com abc
2.3.2 基于端口的虚拟主机
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 42 Listen 80 #默认监听80端口 不变 43 Listen 8888 #此行为新增加的 350 <VirtualHost 192.168.20.133:80> #为ip加上端口 354 <VirtualHost 192.168.20.133:8888> #为ip加上端口
[root@localhost ~]# systemctl restart httpd [root@localhost ~]# curl https://192.168.20.133:80 test [root@localhost ~]# curl https://192.168.20.133:8888 abc
2.3.3 基于ip的虚拟主机
[root@localhost ~]# ifconfig ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 [root@localhost ~]# ifconfig ens32:1 192.168.20.188/24 [root@localhost ~]# ifconfig | grep 188 inet 192.168.20.188 netmask 255.255.255.0 broadcast 192.168.20.255
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 43 Listen 8888 #删除掉 不用了 349 <VirtualHost 192.168.20.188> 353 <VirtualHost 192.168.20.133>
[root@localhost ~]# systemctl restart httpd [root@localhost ~]# curl https://192.168.20.133 abc [root@localhost ~]# curl https://192.168.20.188 test
3. 用户个人主页及访问控制
[root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf 17 # UserDir disabled #此行注释掉 不注释表示禁用 24 UserDir public_html #此行取消注释 31 <Directory "/home/*/public_html"> 32 AllowOverride all 33 AuthUserFile "/etc/httpd/.passwd" 34 AuthName "Plese login" 35 AuthType basic 36 Require valid-user 37 </Directory>
authuserfile 验证时候与这个文件核对密码
authname 访问需要验证的页面时 弹窗的提示信息
authtype 验证类型 basic 基本类型
require valid-user 需要经过验证才可以访问到内容[root@localhost ~]# vim /etc/httpd/conf/httpd.conf 95 ServerName www.example.com [root@localhost ~]# vim /etc/hosts 192.168.20.133 www.example.com #添加解析记录 如果是在centos中访问 这些解析即可 如果实在Windows中访问 Windows的hosts文件 需要写入域名解析
[root@localhost ~]# useradd tiezhu [root@localhost ~]# su - tiezhu [tiezhu@localhost ~]$ pwd /home/tiezhu [tiezhu@localhost ~]$ mkdir public_html [tiezhu@localhost ~]$ echo "homepage for user tiezhu" > public_html/index.html [tiezhu@localhost ~]$ exit logout
[root@localhost ~]# setenforce 0 [root@localhost ~]# chmod 711 /home/tiezhu/
[root@localhost ~]# htpasswd -c /etc/httpd/.passwd tiezhu New password: Re-type new password: Adding password for user tiezhu
[root@localhost ~]# netstat -anput | grep LISTEN | grep 80 Apache没有启动 我们这里启动Apache(如果已经启动 则重启) [root@localhost ~]# systemctl start httpd [root@localhost ~]# netstat -anput | grep LISTEN | grep 80 tcp6 0 0 :::80 :::* LISTEN 11240/httpd
https://www.example.com/~tiezhu/index.html
4. Apache的源码安装和模式切换
4.1 Apache的源码安装
72 yum -y install gcc gcc-c++ expat-devel pcre-devel 73 tar -zxf apr-1.7.0.tar.gz 74 cd apr-1.7.0 75 ./configure --prefix=/usr/local/apr 76 make && make install 77 cd 78 tar -zxf apr-util-1.6.1.tar.gz 79 cd apr-util-1.6.1 80 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr 81 make && make install 82 cd 83 tar -zxf httpd-2.4.39.tar.gz 84 cd httpd-2.4.39 85 ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most 86 make && make install
apr-util 是一个通用的函数库, 他可以让httpd不用关心底层的操作系统平台 可以很方便的进行移植--enable-so #可以让httpd支持动态扩展模块 --enable-mods-shared=most #指定有哪些动态扩展模块,most值的是绝大多数
4.2 apache的服务和服务控制
[root@localhost ~]# ls /usr/local/httpd/ bin build cgi-bin conf error htdocs icons include logs man manual modules bin目录: 服务相关的脚本 比如负责启动、关闭apache的脚本 conf目录: 配置文件 logs: 日志文件 error: 存放错误信息
[root@localhost ~]# /usr/local/httpd/bin/apachectl start AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message 启动时 如果apache没有设置ServerName 会有警告 但依然可以启动 [root@localhost ~]# netstat -anput | grep LISTEN | grep 80 tcp6 0 0 :::80 :::* LISTEN 1423/httpd
[root@localhost ~]# /usr/local/httpd/bin/apachectl stop AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message #关闭的时候 依然会提醒没有设置域名 不是报错 [root@localhost ~]# netstat -anput | grep LISTEN | grep 80
[root@localhost ~]# /usr/local/httpd/bin/apachectl stop AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message [root@localhost ~]# /usr/local/httpd/bin/apachectl start AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message [root@localhost ~]# netstat -anput | grep LISTEN | grep 80 tcp6 0 0 :::80 :::* LISTEN 1611/httpd
4.3 apache的工作模式和切换
4.3.1 工作模式和特点
特点:
apache启动之初,就预先fork一些子进程,然后等待请求进来,这样做主要是为了减少频繁创建和销毁进程的开销。每个子进程包含一个线程,在一个时间点,该进程只可以处理一个请求。
特点:
与prefork相比,使用了多进程和多线程,也会先fork几个子进程,之后为每个子进程创建一些线程,这些线程里包含一个监听线程。每个请求过来,会被分配一个线程来服务。因为work模式比prefork具备更多的线程,而大多数线程都可以处理请求 所以 worker模式具有比prefork模式更高的并发处理量
特点:
event模式和worker模式很想,最大的区别在于,event模式下,有另外一个线程,这个线程可以监督、管理keep-alive长连接的线程,使其在处理完请求后 及时释放连接 这样 在高并发场景下 可以拥有更强的处理能力4.3.2 apahe工作模式的查看和切换
[root@localhost ~]# /usr/local/httpd/bin/httpd -l Compiled in modules: core.c mod_so.c http_core.c event.c --->从此处可以看出 当前的模式就是event模式
./configure --prefix=/usr/local/httpd --with-apr.......... --with-mpm=worker configure的时候 加上--with-mpm=
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算