Web服务器群集——编译安装Apache构建虚拟主机

Posted Pakho`

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web服务器群集——编译安装Apache构建虚拟主机相关的知识,希望对你有一定的参考价值。

一、编译安装Apache

1.1 准备Apache源码包

[root@pakho611 ~]# ls
httpd-2.4.38.tar.gz                #这里使用的版本为2.4.38

1.2 解决Apache安装时的依赖关系

1.2.1 解决Apr依赖

[root@pakho611 ~]# wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz  #下载Apr依赖包
[root@pakho611 ~]# tar -xvzf apr-1.4.5.tar.gz -C /usr/src/                   #解压至/usr/src
[root@pakho611 ~]# cd /usr/src/apr-1.4.5/                                    #进入解压路径
[root@pakho611 apr-1.4.5]# ./configure --prefix=/usr/local/apr               #进行编译并指明安装路径
[root@pakho611 apr-1.4.5]# make && make install                              #完成编译后执行安装

1.2.2 解决Apr-util依赖

[root@pakho611 ~]# wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz #下载Apr-util依赖包
[root@pakho611 ~]# tar -xvzf apr-util-1.3.12.tar.gz -C /usr/src/                  #解压至/usr/src
[root@pakho611 ~]# cd /usr/src/apr-util-1.3.12/                                   #进入解压路径
[root@pakho611 apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
																				  #指明安装路径并关联Apr
[root@pakho611 apr-util-1.3.12]# make && make install			                  #完成编译后执行安装

1.2.3 解决Pcre依赖

[root@pakho611 ~]# wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip #下载pcre依赖包
[root@pakho611 ~]# unzip pcre-8.10.zip -d /usr/src/                               #解压至/usr/src
[root@pakho611 ~]# cd /usr/src/pcre-8.10/                                         #进入解压路径
[root@pakho611 pcre-8.10]# ./configure --prefix=/usr/local/pcre                   #进行编译并指明安装路径
[root@pakho611 pcre-8.10]# make && make install                                   #完成编译后执行安装

1.3 编译安装Apache并关联依赖

[root@pakho611 ~]# tar -xvzf httpd-2.4.38.tar.gz -C /usr/src/                     #解压至/usr/src
[root@pakho611 ~]# cd /usr/src/httpd-2.4.38/                                      #进入解压路径
[root@pakho611 httpd-2.4.38]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-list --enable-cgi --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
[root@pakho611 httpd-2.4.38]# make && make install                                #完成编译后执行安装
  • prefix:指定将httpd服务程序安装到哪个目录下
  • enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力
  • enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护
  • enable-charset-list:启用字符集支持,以便支持使用各种字符集编码的网页
  • enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力

1.4 为Apache修改域名

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::ec53:d68d:60ea:b5e0. Set the 'ServerName' directive globally to suppress this message
#不修改域名会发生如上报错
[root@pakho611 ~]# vim /usr/local/httpd/conf/httpd.conf                           #进入Apache主配置文件
...
#ServerName www.example.com:80                                                    #找到网站域名配置示例
ServerName www.heyihao611.com:80                                                  #改为自己购买的域名
...
[root@pakho611 ~]# cd /usr/local/httpd/bin/                                       #进入Apache命令文件
[root@pakho611 bin]# ./httpd -k restart                                           #重启并查看端口

在这里插入图片描述

1.5 httpd服务目录结构

主要目录和文件:
服务目录:/usr/local/httpd/
主配置文件:/usr/local/httpd/conf/httpd.conf
网页目录:/usr/local/httpd/htdocs/
服务脚本:/usr/local/httpd/bin/apachectl
执行程序:/usr/local/httpd/bin/httpd
访问日志: /usr/local/httpd/log/access_log
错误日志: /usr/local/httpd/log/error_log

二、Apache服务器优化

2.1 检查子配置文件

[root@pakho611 ~]# /usr/local/httpd/conf/extra                  #extra为Apache服务器的子配置文件
[root@pakho611 extra]# vim httpd-default.conf                   #进入默认子配置文件
Timeout 60                                                      #超时时间,默认60秒
KeepAlive On                                                    #保持连接开启,默认打开
MaxKeepAliveRequests 100                                        #最大保持请求,默认100

2.2 检查主配置文件是否收录子配置文件的优化部分

[root@pakho611 extra]# vim ../httpd.conf                        #进入主配置文件
...
#Include conf/extra/httpd-default.conf                          #找到被注释掉的以Include开头的默认子配置文件打开
...
Include conf/extra/httpd-default.conf                           #里面模块很多需要哪个就打开哪一个

[root@pakho611 ~]# cd /usr/local/httpd/bin/
[root@pakho611 bin]# ./httpd -k restart                         #修改完成后重启

在这里插入图片描述此时依旧正常运行,但是会有子配置文件中的优化部分,如长连接等

三、构建基于域名的虚拟主机

3.1 进入虚拟主机配置文件

[root@pakho611 ~]# cd /usr/local/httpd/conf/extra/                   #进入子配置文件
[root@pakho611 extra]# cp httpd-vhosts.conf httpd-vhosts.conf.backup #将原虚拟主机配置文件备份
[root@pakho611 extra]# vim httpd-vhosts.conf                         #修改虚拟主机配置文件

3.1.1 虚拟主机原配置文件详解

#默认虚拟主机配置文件详解
<VirtualHost *:80>                                                   #虚拟主机:监听所有主机的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>

3.2 虚拟主机配置文件修改

<VirtualHost *:80>
    DocumentRoot "/ApacheVhost1"
    ServerName www.heyihao611.com
    ServerAlias heyihao611.com
    ErrorLog "logs/ApacheVhost1-error_log"
    CustomLog "logs/ApacheVhost1-access_log" common
	<Directory "/ApacheVhost1">
        Require all granted                               #设置网页文件允许所有主机访问
	</Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/ApacheVhost2"
    ServerName www.pakho.com
    ErrorLog "logs/ApacheVhost2-error_log"
    CustomLog "logs/ApacheVhost2-access_log" common
	<Directory "/ApacheVhost2">
        Require all granted                              #设置网页文件允许所有主机访问
	</Directory>
</VirtualHost>

3.3 取消主配置文件的虚拟主机注释

[root@pakho611 extra]# vim ../httpd.conf       
...
#Include conf/extra/httpd-vhosts.conf
...
Include conf/extra/httpd-vhosts.conf                     #取消注释

[root@pakho611 ~]# cd /usr/local/httpd/bin/              #修改完成后重启
[root@pakho611 bin]# ./httpd -k restart 

3.4 添加本地域名解析

C:\\Windows\\System32\\drivers\\etc\\hosts
192.168.100.10 www.heyihao611.com
192.168.100.10 www.pakho.com

3.5 为虚拟主机添加html主页并测试

3.5.1 测试虚拟主机一

[root@pakho611 ~]# mkdir /ApacheVhost1
[root@pakho611 ~]# cd /ApacheVhost1
[root@pakho611 ApacheVhost1]# vim index.html             #编译一个html测试网页
<!DOCTYPE html>
<html>
        <h1>ApacheVhost1 TEST</h1>
        <font color=red>TEST OK!</font>
</html>
http://www.heyihao611.com/                                #浏览器输入虚拟主机网址一

在这里插入图片描述

3.5.2 测试虚拟主机二

[root@pakho611 ~]# mkdir /ApacheVhost2
[root@pakho611 ~]# cd /ApacheVhost2
[root@pakho611 ApacheVhost2]# vim index.html              #编译一个html测试网页
<!DOCTYPE html>
<html>
        <h1>ApacheVhost2 TEST</h1>
        <font color=red>TEST OK!</font>
</html>
http://www.pakho.com/                                     #浏览器输入虚拟主机网址二

在这里插入图片描述

以上是关于Web服务器群集——编译安装Apache构建虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7.3 部署LVS + Keepalived 高可用群集

haporxy搭建web群集

haporxy搭建web群集

haporxy搭建web群集

Web服务器群集——源码部署搭建LAMP平台上线wordpress博客上线

构建基于域名的虚拟WEB主机