apache虚拟主机、个人主页、访问控制、源码安装、模式切换

关于apache
中文名 阿帕奇,是主流的企业后端web服务器
默认监听端口 80
服务名 httpd
什么是虚拟主机
虚拟空间,也称虚拟主机(Virtual Host Virtual Server)是使用特殊的软硬件技术,把一台计算机主机分成一台台"虚拟"的主机,每一台虚拟主机都具有独立的域名和IP地址(或共享的IP地址),具有完整的Internet服务器功能,是使用特别的软件和硬件技术,把一台真实的物理电脑主机分割成多个的逻辑存储单元,每个单元由于没有物理实体,但是每一个物理单元都能像真实的物理主机一样在网络上工作。单独的域名、IP地址(或共享的IP地址)、完整的Internet服务器功能。虚拟主机的关键技术在于,即使在同一台硬件、同一个操作系统上,运行着为多个用户打开的不同的服务器程式,互不干扰。

理解:
加入某企业用Apache作为web服务器,如果没有虚拟主机,想要两个域名的网站 www.test.com www.abc.com 则需要两个服务器 如果这两个网站 都不太占据资源 比如展示型网站 此时 用两个服务器 有点太浪费主机资源 我们可以将两个网站都做在同一个Apache服务器上 以节省资源 这种技术 称之为虚拟主机 一个Apache服务器可以具有多个网站及域名

虚拟主机的作用
虚拟主机用于学习和研究方面。很多人建设网站,用于学习某些方面的知识和记录积累。网站上面主要把自己遇到的问题和解决的方法进行记录,以备以后的使用和研究。同时也是与其他人进行知识的分享。这些都不需要很大的带宽,内存等,而且首要的一点是使用方便。还有就是自己做网站来进行测试,所以选择虚拟主机是个不错的选择。

虚拟主机用于个人博客类型的网站。这些类型网站主要用于个人的生活和爱好的方面来进行建设,也不需要选择很高的配置,主要是来展示个人的心得和生活。主要是用来自己看和对自己生活的分享。选择虚拟主机简单,方便,小巧,非常的实用。

用于中小型的企业展示和单页营销型的网站。对于很多的中小企业,他们的网站主要用来展示企业的基本情况,或者产品的特定时间的营销。并不涉及到网上的在线交易。所以选择虚拟主机来说也是非常的合适,便于管理和信息的发布。

1、apache虚拟主机

安装apache服务

[root@CentOS1 ~]# yum -y install httpd

基于域名的虚拟主机

[root@CentOS1 ~]# vim /etc/httpd/conf/httpd.conf
#添加以下内容
349 <VirtualHost 192.168.1.1>	#此IP为apache服务器的IP
350 DocumentRoot /var/www/html/lkx	#网页存放路径
351 ServerName www.lkx.com
352 </VirtualHost>
353 <VirtualHost 192.168.1.1>	#此IP为apache的IP
354 DocumentRoot /var/www/html/zy	#网页存放路径
355 ServerName www.zy.com
356 </VirtualHost>
#保存并退出

创建虚拟主机所需要的网页文件及其目录

[root@CentOS1 ~]# mkdir -p /var/www/html/{lkx,zy}
[root@CentOS1 ~]# echo "lkx" >/var/www/html/lkx/index.html
[root@CentOS1 ~]# echo "zy" >/var/www/html/zy/index.html

利用hosts文件做简单的域名解析

[root@CentOS1 ~]# vim /etc/hosts
#添加以下内容
192.168.1.1 www.lkx.com
192.168.1.1 www.zy.com

启动apache服务,并且访问

[root@CentOS1 ~]# systemctl start httpd
[root@CentOS1 ~]# curl http://www.lkx.com
lkx
[root@CentOS1 ~]# curl http://www.zy.com
zy

基于端口的虚拟主机

修改虚拟主机的端口

[root@CentOS1 ~]# vim /etc/httpd/conf/httpd.conf
#进入后去42行或找到Listen 80
 42 Listen 80	#默认存在的端口号
 43 Listen 8888	#此行新添加内容 新增的端口号尽量大一些避免冲突
[root@CentOS1 ~]# vim /etc/httpd/conf/httpd.conf
#修改为以下内容 如果没有以下内容就添加进去
349 <VirtualHost 192.168.1.1:80>	#IP为apache服务器的IP
350 DocumentRoot /var/www/html/lkx	#网页存放路径
351 ServerName www.lkx.com
352 </VirtualHost>
353 <VirtualHost 192.168.1.1:8888>	#IP为apache服务器的IP
354 DocumentRoot /var/www/html/zy	#网页存放路径
355 ServerName www.zy.com
356 </VirtualHost>
#保存并退出

重启apache服务,并且访问

[root@CentOS1 ~]# systemctl restart httpd
[root@CentOS1 ~]# curl http://192.168.1.1:80
lkx
[root@CentOS1 ~]# curl http://192.168.1.1:8888
zy

基于IP的虚拟主机

[root@CentOS1 ~]# ifconfig 	#查看网卡名称
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
#添加临时ip
[root@CentOS1 ~]# ifconfig ens33:0 192.168.1.10/24
[root@CentOS1 ~]# ifconfig  | grep 192.168.1.10
inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255

修改配置文件

[root@CentOS1 ~]# vim /etc/httpd/conf/httpd.conf
Listen 8888	#删除此行
#修改为以下内容 如果没有以下内容就添加进去
349 <VirtualHost 192.168.1.1>	#IP为apache服务器的IP
350 DocumentRoot /var/www/html/lkx	#网页存放路径
351 ServerName www.lkx.com
352 </VirtualHost>
353 <VirtualHost 192.168.1.10>	#IP为apache服务器的IP
354 DocumentRoot /var/www/html/zy	#网页存放路径
355 ServerName www.zy.com
356 </VirtualHost>
#保存并退出

重启apache服务,并且访问

[root@CentOS1 ~]# systemctl restart httpd
[root@CentOS1 ~]# curl http://192.168.1.1
lkx
[root@CentOS1 ~]# curl http://192.168.1.10
zy

2、用户个人主页及访问控制

编辑个人主页的设置

[root@CentOS1 ~]# 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>

设置web服务器域名及域名解析

[root@CentOS1 ~]# vim /etc/httpd/conf/httpd.conf
95 ServerName www.lkx.com:80	#取消注释
#保存退出

利用hosts文件做简单的域名解析

[root@CentOS1 ~]# vim /etc/hosts
#添加以下内容
192.168.1.1 www.lkx.com

创建用户个人主页

[root@CentOS1 ~]# useradd lkx
[root@CentOS1 ~]# su - lkx
[lkx@CentOS1 ~]$ pwd
/home/lkx
[lkx@CentOS1 ~]$ mkdir public_html
[lkx@CentOS1 ~]$ echo "lkx user homepage" >public_html/index.html	#引号中的内容随便
[lkx@CentOS1 ~]$ exit
登出

调整selinux、给权限

[root@CentOS1 ~]# setenforce 0
[root@CentOS1 ~]# chmod 711 /home/lkx/

设置验证密码

[root@CentOS1 ~]# htpasswd -c /etc/httpd/.passwd lkx
New password: 
Re-type new password: 
Adding password for user lkx
# /etc/httpd/.passwd 密码存位置
# lkx 用户名

重启apache服务,并且访问

[root@CentOS1 ~]# systemctl restart httpd

访问 http://www.lkx.com/~lkx/index.html

在这里插入图片描述
在这里插入图片描述

3、源码安装

将这三个文件上传到服务器中
在这里插入图片描述
解压并安装apr-1.7.0.tar.gz

[root@CentOS1 ~]# tar zxf apr-1.7.0.tar.gz
[root@CentOS1 ~]# cd apr-1.7.0/
[root@CentOS1 apr-1.7.0]# ./configure --prefix=/usr/local/apr
[root@CentOS1 apr-1.7.0]# make && make install

解压并安装apr-util-1.6.1.tar.gz

[root@CentOS1 apr-1.7.0]# cd
[root@CentOS1 ~]# tar zxf apr-util-1.6.1.tar.gz 
[root@CentOS1 ~]# cd apr-util-1.6.1/
[root@CentOS1 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@CentOS1 apr-util-1.6.1]# make && make install

解压并安装httpd-2.4.39.tar.gz

[root@CentOS1 apr-util-1.6.1]# cd
[root@CentOS1 ~]# tar zxf httpd-2.4.39.tar.gz 
[root@CentOS1 ~]# cd httpd-2.4.39/
[root@CentOS1 httpd-2.4.39]# ./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr  --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
[root@CentOS1 httpd-2.4.39]# make && make install

启动服务

[root@CentOS1 ~]# /usr/local/httpd/bin/apachectl start
[root@CentOS1 ~]# netstat -anput |grep httpd

关闭服务

[root@CentOS1 ~]# /usr/local/httpd/bin/apachectl stop
[root@CentOS1 ~]# netstat -anput |grep httpd

重启服务

[root@CentOS1 ~]# /usr/local/httpd/bin/apachectl stop
[root@CentOS1 ~]# /usr/local/httpd/bin/apachectl start
[root@CentOS1 ~]# netstat -anput |grep httpd

参数释义:

4、工作模式和切换

工作模式后台特点
Prefork
特点:
apache启动之初,就预先fork一些子进程,然后等待请求进来,这样做主要是为了减少频繁创建和销毁进程的开销。每个子进程包含一个线程,在一个时间点,该进程只可以处理一个请求。

处理一定数量的请求时 需要更多的系统资源 对请求的处理效率较低 如果是很多请求的情况下 会将请求放在队列中 一直等待前边的处理完毕

关于进程和线程 不动的可以看https://blog.csdn.net/weixin_43557605/article/details/101101551

Worker
特点:
与prefork相比,使用了多进程和多线程,也会先fork几个子进程,之后为每个子进程创建一些线程,这些线程里包含一个监听线程。每个请求过来,会被分配一个线程来服务。因为work模式比prefork具备更多的线程,而大多数线程都可以处理请求 所以 worker模式具有比prefork模式更高的并发处理量

如果使用keep-alive的长连接方式,某个线程会等到到超时才会被释放,如果过多的线程被这样占据,会导致在高并发场景下系统无服务线程可用

Event
特点:
event模式和worker模式很想,最大的区别在于,event模式下,有另外一个线程,这个线程可以监督、管理keep-alive长连接的线程,使其在处理完请求后 及时释放连接 这样 在高并发场景下 可以拥有更强的处理能力

三种工作模式中 最好的event模式 所以 apache模型优化 一般都是想把apache适应的模型 切换为event

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值