Apache-Httpd部署,目录结构,虚拟网站主机功能

root
233
文章
0
评论
2020年2月22日22:44:45 评论 4180字阅读13分56秒

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地址

Apache-Httpd部署,目录结构,虚拟网站主机功能Apache-Httpd部署,目录结构,虚拟网站主机功能Apache-Httpd部署,目录结构,虚拟网站主机功能

 基于单IP地址,多域名

就是把上面的内容里IP地址换成一样的,放置不同的域名就实现了,略---……^-^

基于端口号

编辑/etc/httpd/conf/httpd.conf,找到listen
listen xxx
listen xxx
需要几个端口写几个
在扩展配置文件中的<VirtualHost 192.168.5.36>标签添加端口号就行了
<VirtualHost 192.168.5.36:xxx>

 

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2020年2月22日22:44:45
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: