Apache原理与编译安装

一、Apache简介

Apache起源
1.源于A Patchy Server,著名的开源Web服务软件
2.1995年时,发布Apache服务程序的1.0版本
3.由Apache软件基金会(ASF)负责维护
4.最新的名称为“Apache HTTP Server”
5.官方站点:http://httpd.apache.org/

2、主要特点

·1.开放源代码、跨平台应用
·2.支持多种网页编程语言
·3.模块化设计、运行稳定、良好的安全性

软件版本

1.X
·目前最高版本是1.3,运行稳定
·向下兼容性较好,但缺乏一些较新的功能
2.X
·目前最高版本是2.4
·具有更多的功能特性
·与1.X相比,配置管理风格存在较大差异

编译安装httpd服务器

·编译安装的优点
1)、具有较大的自由度,功能可定值
2)、可及时获得最新的软件版本
3)、普通适用于大多数Linxu版本,便于移植使用
获得Apache服务器的源码包
可参考地址:http://httpd.apache.org/download.cgi

编译安装apache

1、先导入三个依赖包
2、解压缩 
     tar zxvf apr-1.6.2.tar.gz 
      tar zxvf apr-util-1.6.0.tar.gz 
      tar jxvf httpd-2.4.29.tar.bz2 
3、剪切到apache目录下
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
4、装依赖环境
yum -y install gcc gcc- c++ make pcre-devel expat-devel perl
5、配置功能模块
cd httpd-2.4.29/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
6、make安装
make && make install
7、优化apache配置
cd
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd  //让apache开机自启动
vi /etc/init.d/httpd 
#!/bin/sh
# chkconfig: 35 85 21(添加)35级别自动运行 第85个启动 第21个关闭
# description: Apache HTTP Server(添加)描述

chkconfig --add httpd 将httpd加入service管理器
 systemctl restart httpd

ln -s /usr/local/httpd/conf/httpd.conf /etc/       //优化apache执行路径
ln -s /usr/local/httpd/bin/* /usr/bin/

vi /etc/httpd.conf               //将域名和网页捆绑
# ServerName www.example.com:80
ServerName www.aa.com:80(修改)

8、检查apache语法,查看端口号
httpd -t 
apachectl -t
systemctl restart httpd 
netstat -anpt | grep httpd  

构建虚拟web主机
实验1:基于域名
1、为虚拟机准备不同的测试主页
 mkdir /opt/aa
 mkdir /opt/bb
cd /opt/aa/
  vi index.html
<html><body><h1>this is server aa</h1></body></html>
 cp index.html /opt/bb
 cd /opt/bb/
vi index.html 
<html><body><h1>this is server bb</h1></body></html>
cd

2、启用vhost文件
vi /etc/httpd.conf 
搜索vhost找到以下命令:
#Include conf/extra/httpd-vhosts.conf
把#去掉,复制conf/extra/httpd-vhosts.conf这个路径(一会要编辑这个配置文件),
保存退出

3、网页网站捆绑域名
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf

找到以下两个端口
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/httpd/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/usr/local/httpd/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error_log"
    CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>


改成
<VirtualHost *:80>           //设置aa虚拟站点区域
    ServerAdmin webmaster@aa.com 
    DocumentRoot "/opt/aa"
    ServerName www.aa.com
    ErrorLog "logs/www.aa.com-error_log"
    CustomLog "logs/www.aa.com-access_log" common
</VirtualHost>
<Directory "/opt/aa">     //定义“/opt/aa”目录区域的开始
 Options Indexes MultiViews FollowSymLinks         //控制选项,允许使用符号链接
 AllowOverride None          //不允许隐含控制文件中的覆盖配置
 Order allow,deny
 Allow from all
 Require all granted   
</Directory>
<VirtualHost *:80>               //设置bb虚拟站点区域
    ServerAdmin webmaster@bb.com
    DocumentRoot "/opt/bb"
    ServerName www.bb.com
    ErrorLog "logs/www.bb.com-error_log"
    CustomLog "logs/www.bb.com-access_log" common
</VirtualHost>
<Directory "/opt/bb">
 Options Indexes MultiViews FollowSymLinks
 AllowOverride None
 Order allow,deny
 Allow from all
 Require all granted
</Directory>

4、做映射
vi /etc/hosts(追加)
20.0.0.12  www.aa.com www.bb.com

systemctl restart httpd
5、查验效果
netstat -anpt | grep httpd
curl http://www.aa.com
curl http://www.bb.com 

实验2:基于IP地址
1、添加一个虚拟地址:
ifconfig ens33:1 192.168.1.12/24
ip addr  (查看ens33里有没有该虚拟网段)

2、做捆绑,修改虚拟主机的配置文件
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
找到两个端口,把端口号前面的*改成ip地址
<VirtualHost *:80><VirtualHost 20.0.0.12:80> 
<VirtualHost *:80><VirtualHost 192.168.1.12:80> 

systemctl restart httpd

3、验证
curl http://20.0.0.12/
curl http://192.168.1.12/

实验3:基于端口
1、修改虚拟主机的配置文件
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.1.12:80><VirtualHost 192.168.1.12:8080

2、修改主配置文件
vi /etc/httpd.conf
搜索”/Listen“,
Listen 80
Listen 8080(添加这个端口的监听地址)

systemctl restart httpd

3、验证
netstat -anpt | grep httpd
curl http://192.168.1.12:8080

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页