小言_互联网的博客

Apache和虚拟主机

444人阅读  评论(0)

一、Apache服务

(一)概述

1.服务搭建整体图

(二)httpd的源代码安装与简单使用

1.卸载原有的httpd服务

rpm  -e  httpd  --nodeps                       (忽略依赖关系,强制卸载软件)

卸载后利用rpm  -qi  httpd,如果没有,那就卸载成功了。

2.下载

访问Apache官网获取源码包下载地址

wget  http://archive.apache.org/dist/httpd/httpd-2.2.15.tar.gz

由于高版本安装的时候还要解决APR的问题,此处为了方便,就不用高版本的httpd,只用低版本的httpd。高版本的安装详情,自己百度吧!此篇文章只解决怎么配置httpd的问题,不解决安装问题,毕竟高版本和低版本配置相差不大。

3.安装

(1)解压到指定目录

mkdir /usr/local/src/http

tar xzf httpd-2.2.15.tar.gz  -C /usr/local/src/http

(2)安装编译环境

yum  -y  install  gcc  gcc-c++  make

(3)配置安装目录与设置模块

cd   /usr/local/src/http/httpd-2.2.15

mkdir /usr/local/httpd

./configure  --prefix=/usr/local/httpd  --enable-so --enable-rewriter  --enable-charset-lite --enable-cgi

(4)编译安装

make  &&  make install

4.优化执行

创建链接文件

ln  -s  /usr/local/httpd/bin/*   /usr/local/bin

5.转换为服务

(1)复制脚本文件到/etc/init.d/下

cp /usr/local/httpd/bin/apachectl   /etc/init.d/httpd

如果后面service httpd start 不行的话,就给该脚本文件添加执行权限。(chmod  u+x  /usr/local/httpd/bin/apachectl)

(2)修改脚本文件

用以标记一下,好记。

#!/bin/sh

# chkconfig: 35 85 15

# description: Startup script for the Apache HTTP Server

# Licensed to the Apache Software Foundation (ASF) under one or more

# contributor license agreements.  See the NOTICE file distributed with

6.加入启动项

[root@sutang ~]# chkconfig --add httpd

[root@sutang ~]# chkconfig --level 35 httpd on

[root@sutang ~]# chkconfig --list httpd

httpd              0:关闭      1:关闭      2:关闭      3:启用      4:关闭      5:启用      6:关闭

7.测试

开启:service httpd start

关闭防火墙(service  iptables stop)与selinux(setenforce 0)

用主机的浏览器访问,结果如下:

8.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

(三)基于端口的虚拟主机服务

--------------***********我的见解*************-------------

1.网页文件的other权限为可读

2.httpd.conf文件中启用虚拟主机服务

3.httpd.conf或虚拟主机配置文件设置网页所在目录的父目录的访问权限。如果网页文件在默认网页目录(/usr/local/httpd/htdocs/)下,可以不用设置。

4.如果为基于端口的虚拟主机服务的话,在httpd.conf多加一条监听端口的设置;不是就跳过此条。

5.修改虚拟主机配置文件

---------------*************------------------------------------------

同一IP的不同端口提供不同的网页。

访问同一个IP的不同端口,显示不同的主页。

1.修改httpd文件

httpd.conf文件解读见https://www.cnblogs.com/cqmy/p/6208656.html

vim /usr/local/httpd/conf/httpd.conf   (:set nu 显示行号)

(1)加一条监听端口。

(2)开启虚拟主机服务

2.创建网页文件

cd   /usr/local/httpd/htdocs

(1)编写80端口的主页

mkdir   su

echo "su" > su/index.html

(2)编写8080端口的主页

mkdir   tang

echo "tang" > tang/index.html

3.修改虚拟主机配置文件

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

第一个红框为:httpd服务器的IP(即本机)和端口号

第二个红框为:访问此端口时网页的根目录

第三个红框为:错误日志的位置

第四个红框为:连接日志的位置

---***-----下面的东西仅用作参考----

当网页目录不在默认网页目录(/usr/local/httpd/htdocs/)下时,可以在httpd.conf或虚拟主机配置文件中添加这一段

第一个红框表示网页的目录位置。

---***----------------------------------------------

4.重启服务

killall  -9  httpd

service httpd start

5.测试

关闭防火墙(service  iptables stop)与selinux(setenforce 0)

用主机的浏览器访问,结果如下:

(四)基于IP(不同网卡)的虚拟主机服务

--------------***********我的见解*************-------------

1.网页文件的other权限为可读

2.httpd.conf文件中启用虚拟主机服务

3.httpd.conf或虚拟主机配置文件设置网页所在目录的父目录的访问权限。如果网页文件在默认网页目录(/usr/local/httpd/htdocs/)下,可以不用设置。

4.如果为基于端口的虚拟主机服务的话,在httpd.conf多加一条监听端口的设置;不是就跳过此条。

5.修改虚拟主机配置文件

---------------*************------------------------------------------

访问不同网卡时,显示不同的网页。

1.给虚拟机添加两张网卡

给每一张网卡都设置一个IP。

cd /etc/sysconfig/network-scripts/

cp ifcfg-eth0 ifcfg-eth1

vim ifcfg-eth1

将mac、uid那两栏删除,改掉设备名和IP

重启网络

service network restart

2.修改httpd.conf

httpd.conf文件解读见https://www.cnblogs.com/cqmy/p/6208656.html

vim /usr/local/httpd/conf/httpd.conf   (:set nu 显示行号)

开启虚拟主机服务

3.创建网页文件

cd   /usr/local/httpd/htdocs

(1)编写192.168.8.116的主页

mkdir   su

echo "su" > su/index.html

(2)编写192.168.8.115的主页

mkdir   tang

echo "tang" > tang/index.html

4.修改虚拟主机配置文件

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

第一个红框为:httpd服务器的IP(不同网卡的IP)和端口号

第二个红框为:访问此端口时网页的根目录

第三个红框为:错误日志的位置

第四个红框为:连接日志的位置

---***-----下面的东西仅用作参考----

当网页目录不在默认网页目录(/usr/local/httpd/htdocs/)下时,可以在httpd.conf或虚拟主机配置文件中添加这一段

第一个红框表示网页的目录位置。

---***----------------------------------------------

5.重启服务

killall  -9  httpd

service httpd start

6.测试

关闭防火墙(service  iptables stop)与selinux(setenforce 0)

用主机的浏览器访问,结果如下:

(五)基于不同域名的虚拟主机服务

--------------***********我的见解*************-------------

1.网页文件的other权限为可读

2.httpd.conf文件中启用虚拟主机服务

3.httpd.conf或虚拟主机配置文件设置网页所在目录的父目录的访问权限。如果网页文件在默认网页目录(/usr/local/httpd/htdocs/)下,可以不用设置。

4.修改虚拟主机配置文件

5.在DNS服务器上添加两条解析记录。(不同域名指向同一IP)

---------------*************------------------------------------------

以不同的域名访问该主机时,显示不同的网页。

1.修改httpd文件

httpd.conf文件解读见https://www.cnblogs.com/cqmy/p/6208656.html

vim /usr/local/httpd/conf/httpd.conf   (:set nu 显示行号)

开启虚拟主机服务

2.创建网页文件

cd   /usr/local/httpd/htdocs

(1)编写su.sutang.com的主页

mkdir   su

echo "su" > su/index.html

(2)编写tang.sutang.com的主页

mkdir   tang

echo "tang" > tang/index.html

3.修改虚拟主机配置文件

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

第一个红框用默认的就行。

第二个红框为网页的根目录

第三个红框为访问的域名

第四个红框为访问的域名的别名

第五个红框为错误日志

第六个红框为连接日志

4.安装dns并配置

(1)安装

cd /media/CentOS_6.5_Final/Packages/

rpm -ivh bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

rpm -ivh bind-chroot-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

(2)配置

vim /var/named/chroot/etc/named.conf

(3)创建解析文件

cd /var/named/chroot/var/named

vim sutang.com.zone

(4)启动DNS

service named start

5.重启服务

killall  -9  httpd

service httpd start

6.测试

关闭防火墙(service  iptables stop)与selinux(setenforce 0)

修改主机的网络适配器的DNS,使DNS指向虚拟机。

浏览器测试如下:

日志查看:

(六)搭建Apache的网页流量监控服务

1.下载awstats

建议在官网下载后,再拷贝进虚拟机。

2.解压到指定目录

mkdir  /usr/local/src/awstats

tar  zxf  awstats-7.3.tar.gz  -C  /usr/local/src/awstats/

3.利用它给出的脚本安装

cd   /usr/local/src/awstats/awstats-7.3/tools

chmod u+x awstats_configure.pl

 

./awstats_configure.pl

选n,然后

cd

mkdir /usr/local/awstats

mv   /usr/local/src/awstats/awstats-7.3/*  /usr/local/awstats/

 

cd  /usr/local/awstats/tools

./awstats_configure.pl

上面那条命令执行后,根据提示回答问题。

Enter full config file path of your Web server.

Example: /etc/httpd/httpd.conf

Example: /usr/local/apache2/conf/httpd.conf

Example: c:\Program files\apache group\apache\conf\httpd.conf

Config file path ('none' to skip web server setup):

> /usr/local/httpd/conf/httpd.conf        httpd.conf的位置,输错了就用Ctrl+U清空,重输

接下来会问是否建立日志文件,我们选y

接下来会问是否建立awstats的配置文件,我们选y

选择你将监控的网站的域名,我们监控su.sutang.com

接下来选回车、回车。

4.修改配置文件及相关

(1)在配置中改日志文件的位置。

LogFile=”/usr/local/httpd/logs/su-access_log”          #虚拟主机配置文件中设置的连接日志

(2)创建DirDate目录

mkdir   /var/lib/awstats

(3)给更新日志的配置文件加上执行权限

cd /usr/local/awstats/tools/

chmod u+x awstats_updateall.pl

(4)创建计划

由于该软件更新日志需要周期性计划,所以创建计划。

crontab   -e

内容如下:

*/1     *       *       *       *       /usr/local/awstats/tools/awstats_updateall.pl  now

查看用crontab  -l

(5)启动并设置开机自启

service crond start

service httpd start

chkconfig --level 35 crond on

chkconfig --level 35 httpd on

5.访问监控页面

http://192.168.8.116/awstats/awstats.pl?config=su.sutang.com

其中的IP为虚拟机的IP,域名为刚才设置的域名。

6.为了方便访问,设置跳转网页

cd    /usr/local/httpd/htdocs/su

vim aws.html

内容如下:

<html>

<head>

<meta http-equiv=refresh content="0;url=http://su.sutang.com/awstats/awstats.pl?config=su.sutang.com">

</head>

</html>

在主机上访问:http://su.sutang.com/aws.html

 

7.为了安全,给该网页访问设置用户认证

(1)添加用户

/usr/local/httpd/bin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin

(2)修改httpd.conf

第一个红框为密码文件位置。

第二个红框为允许的用户。

(3)重启服务并测试

service httpd restart

http://su.sutang.com/aws.html

 

 

 

 


转载:https://blog.csdn.net/yingqianmeng/article/details/101635990
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场