Apache-Httpd
Apache程序是目前拥有很高市场占有率的Web服务程序之一,其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。Apache服务程序可以运行在Linux系统、UNIX系统甚至是Windows系统中,支持基于IP、域名及端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块、安全Socket层(SSL),能够实时监视服务状态与定制日志消息,并有着各类丰富的模块支持。
两种部署方式:
- yum Apahce2.2 和 2.4 -- 在授权的时候不通的(我用这种)
- 2.2Order allow,deny
- 2.4Require
安装httpd-devel开发组包
[root@apache-web ~]# yum -y isntall httpd-devel
yum卡死用不了解决办法:
断网 -- 继续yum --报错 -->解决方案: rm -rf /var/run/yum.pid
- 源码 -- LAMP的 LAMP- 可以直接yum
启用httpd服务程序并将其加入到开机启动项中,使其能够随系统开机而运行,从而持续为用户提供Web服务:
[root@apache-web ~]# systemctl start httpd
[root@apache-web ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
这里apacheIP:192.168.5.33
游览器进程查看,apache版本
[root@apache-web ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Jul 29 2019 17:18:49
apache配置服务文件参数
如果是yum安装都是在/etc/目录下生成与其同名的目录
/etc/httpd ---------服务目录
/etc/httpd/conf/httpd.conf-------主配置文件(等于nginx/nginx.conf)
/etc/httpd/conf.d/*.conf------------扩展配置文化(nginx,/nginx/conf.d/*.conf)
/var/www/html----------默认的首页目录(nginx是/usr/share/nginx/html)
/var/log/httpd/access_log--------日志信息(nginx,/var/log/nginx/access_log)
/var/log/httpd/error_log---------错误日志信息(nginx,/var/log/nginx/error.log)
在httpd服务程序的主配置文件中,存在三种类型的信息:注释行信息、全局配置、区域配置-定义某个目录权限
配置httpd服务程序时最常用的参数以及用途描述
ServerRoot 服务目录 /etc/httpd
ServerAdmin 管理员邮箱
User -- yum安装默认是apache 运行服务的用户
Group 运行服务的用户组
ServerName -- 默认www.example.com:80 -- 改为127.0.0.1:80 网站服务器的域名
DocumentRoot 网站数据目录 /var/www/html
Listen 监听的IP地址与端口号 -- 80
DirectoryIndex 默认的索引页页面 index.html index.htm -- yum 没有默认页显示测试页
ErrorLog 错误日志文件
CustomLog 访问日志文件
Timeout 网页超时时间,默认为300秒
DocumentRoot参数用于定义网站数据的保存路径,其参数的默认值是把网站数据存放到/var/www/html目录中;而当前网站普遍的首页面名称是index.html,因此可以向/var/www/html目录中写入一个文件,替换掉httpd服务程序的默认首页面,该操作会立即生效。
[root@apache-web ~]# echo baba >/var/www/html/index.html
在执行上述操作之后,再在Firefox浏览器中刷新httpd服务程序,可以看到该程序的首页面内容已经发生了改变。
说一点关于#号注释的
#号后面没有空格写的信息表示默认生成
#号后面加空格才是真的注释
在默认情况下,网站数据是保存在/var/www/html目录中,而如果想把保存网站数据的目录修改为/home/wwwroot目录,该怎么操作呢?
Directory一个是严格权限,一个是宽松权限,严格权限不用注释掉
httpd主配置文件httpd.conf
常规的就不写了
Directory标签讲解
Options Indexes FollowSymLinks------索引,导向测试目录,删除这个选项可以解决站点目录暴露问题
AllowOverride None------------不用动,允许链接访问
Require all granted---------------Require授权,all granted所有人
<Directory "/code/"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
IfModule dir_module标签讲解
DirectotyIndex xxx-----默认的网站页面
<IfModule dir_module> DirectoryIndex index.html </IfModule>
httpd扩展文件/etc/httpd/conf.d/*.conf
虚拟网站主机功能
利用虚拟主机功能,可以把一台处于运行状态的物理服务器分割成多个“虚拟的服务器”。但是,该技术无法实现目前云主机技术的硬件资源隔离,让这些虚拟的服务器共同使用物理服务器的硬件资源,供应商只能限制硬盘的使用空间大小。出于各种考虑的因素(主要是价格低廉),目前依然有很多企业或个人站长在使用虚拟主机的形式来部署网站。
Apache的虚拟主机功能是服务器基于用户请求的不同IP地址、主机域名或端口号,实现提供多个网站同时为外部提供访问服务的技术,用户请求的资源不同,最终获取到的网页内容也各不相同。
基于多IP地址,多域名
如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站一一对应,这样当用户请求访问不同的IP地址时,会访问到不同网站的页面资源。而且,每个网站都有一个独立的IP地址,对搜索引擎优化也大有裨益。
在/etc/httpd/conf.d/创建*.conf,我建了四个
[root@apache-web conf.d]# vim www_33.conf
<VirtualHost 192.168.5.33> DocumentRoot "/code/33" ServerName www.kk.com <Directory "/code/33" > AllowOverride None Require all granted </Directory> </VirtualHost>
[root@apache-web conf.d]# vim www_34.conf
<VirtualHost 192.168.5.34> DocumentRoot "/code/34" ServerName www.kk1.com <Directory "/code/34" > AllowOverride None Require all granted </Directory> </VirtualHost>
[root@apache-web conf.d]# vim www_35.conf
<VirtualHost 192.168.5.35> DocumentRoot "/code/35" ServerName www.kk2.com <Directory "/code/35" > AllowOverride None Require all granted </Directory> </VirtualHost>
[root@apache-web conf.d]# vim www_36.conf
<VirtualHost 192.168.5.36> DocumentRoot "/code/36" ServerName www.kk3.com <Directory "/code/36" > AllowOverride None Require all granted </Directory> </VirtualHost>
[root@apache-web conf.d]# echo www_33 > /code/33/index.html
[root@apache-web conf.d]# echo www_34 > /code/34/index.html
[root@apache-web conf.d]# echo www_35 > /code/35/index.html
[root@apache-web conf.d]# echo www_36 > /code/36/index.html
[root@apache-web conf.d]# systemctl restart httpd
现在去web检验,IP地址
基于单IP地址,多域名
就是把上面的内容里IP地址换成一样的,放置不同的域名就实现了,略---……^-^
基于端口号

评论