Web网站服务-Apache

一、概述

二、编译安装

三、httpd服务基础

四、httpd.conf配置文件

五、httpd服务访问控制

六、虚拟Web主机


一、概述


主要特点

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

开放源代码、跨平台应用

支持多种网页编程语言

模块化设计 、运行稳定、良好的安全性

二、编译安装


编译安装的优点

具有较大的自由度,功能可定制

可及时获得最新的软件版本

普遍适用于大多数Linux版本,便于移植使用

获得Apache服务器的源码包

参考地址:http://httpd.apache.org/download.cgi

安装httpd服务器

1.准备工作

卸载httpd及相关依赖包

[root@www ~]# rpm -e httpd httpd-manual webalizer subversion mod_python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common mysql dovecot --nodeps  //忽略软件包依赖性

2.源码编译及安装

[root@www ~]# tar zxf httpd-2.2.17.tar.gz -C /usr/src/      //解包

[root@www ~]# cd /usr/src/httpd-2.2.17/

[root@www httpd-2.2.17]# ./configure  --prefix=/usr/local/httpd  --enable-so  --enable-rewrite  --enable-charset-lite  --enable-cgi  //配置

[root@www httpd-2.2.17]# make

[root@www httpd-2.2.17]# make install    //编译及安装

3.确认安装结果

[root@www ~]# ls /usr/local/httpd/

bin    cgi-bin  error  icons    lib  man    modules

build  conf    htdocs  include  logs  manual

4.优化执行路径

[root@www ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

[root@www ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl

lrwxrwxrwx 1 root root 30 04-06 13:08 /usr/local/bin/apachectl ->  /usr/local/httpd/bin/apachectl

lrwxrwxrwx 1 root root 26 04-06 13:08 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd

5.添加httpd系统服务

以便通过chkconfig进行管理

[root@www ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

[root@www ~]# vi /etc/init.d/httpd

#!/bin/bash

# chkconfig: 35 85 15

# description: Startup script for the Apache HTTP Server

……

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

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

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

三、httpd服务基础


1、主要目录和文件:

服务目录:/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

Httpd的安装目录是由前面的—prefix指定的路径,默认安装在/usr/local/apache2目录下

2、Web站点部署过程

1.确定网站名称、IP地址

ifconfig、hostname

2.配置并启动httpd服务

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf

……

ServerName www.benet.com

……

[root@www ~]# /usr/local/httpd/bin/apachectl -t

Syntax OK

[root@www ~]# /etc/init.d/httpd start

3.部署网页文档

[root@www ~]# cat /usr/local/httpd/htdocs/index.html

It works!

4.在客户机中访问Web站点

Web网站服务-Apache_第1张图片
图一

5.查看Web站点的访问情况

[root@www ~]# tail /usr/local/httpd/logs/access_log

192.168.4.110 - - [06/Apr/2011:14:24:06 +0800] "GET / HTTP/1.1" 200 44

192.168.4.110 - - [06/Apr/2011:14:24:06 +0800] "GET /favicon.ico HTTP/1.1" 404 209

四、httpd.conf配置文件


常用的全局配置参数

ServerRoot:服务目录

ServerAdmin:管理员邮箱

User:运行服务的用户身份

Group:运行服务的组身份

ServerName:网站服务器的域名

DocumentRoot:网页文档的根目录

Listen:监听的IP地址、端口号

PidFile:保存httpd进程PID号的文件

DirectoryIndex:默认的索引页文件

CustomLog:访问日志文件的位置

LogLevel:记录日志的级别,默认为warn

Timeout:网络连接超时,默认为300秒

KeepAlive:是否保持连接,可选On或Off

MaxKeepAliveRequests:每次连接最多请求文件数

KeepAliveTimeout:保持连接状态时的超时时间

Include:需要包含进来的其他配置文件

区域配置项

    OptionsFollowSymLinks  //控制选项,允许使用符号链接

    AllowOverrideNone  //不允许隐含控制文件中的覆盖配置

    Orderdeny,allow  //访问控制策略的应用顺序

    Deny from all  //禁止任何人访问此区域


五、httpd服务访问控制


httpd服务的访问控制

作用:

控制对网站资源的访问

为特定的网站目录添加访问授权

常用访问控制方式:

客户机地址限制

用户授权限制

Order配置项,定义控制顺序

先允许后拒绝,默认拒绝所有:Order allow,deny

先拒绝后允许,默认允许所有:Order deny,allow

Allow、Deny配置项,设置允许或拒绝的地址

Deny from address1 address2 …

Allow from address1 address2 …


……

Order deny,allow

deny from 192.168.0.0/24 192.168.1.0/24

用户授权限制

1.创建用户认证数据库

[root@www ~]# cd /usr/local/httpd/

[root@www httpd]# bin/htpasswd -c/usr/local/httpd/conf/.awspwd webadmin //新建密码文件

New password:

Re-type new password:

Adding password for user webadmin

[root@www httpd]# cat /usr/local/httpd/conf/.awspwd  //确认用户数据库文件

webadmin:2tmD3LVFynBAE

2.添加用户授权配置

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf…………

……

……

AuthName "AWStats Directory"  //受保护的领域名称

AuthType Basic  //设置认证的类型

AuthUserFile /usr/local/httpd/conf/.awspwd  //用户认证账号文件

require valid-user

  //要求通过认证才能访问

[root@www ~]# /usr/local/httpd/bin/apachectl restart

3.验证用户访问授权


六、虚拟Web主机


在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机

httpd支持的虚拟主机类型

基于域名的虚拟主机

基于IP地址的虚拟主机

基于端口的虚拟主机


构建虚拟主机——基于域名

应用示例:

构建2个虚拟Web站点:

www.benet.com,IP地址为 173.17.17.11

www.accp.com,IP地址为 173.17.17.11

在浏览器中访问这两个域名时,分别显示不同的内容

1.为虚拟主机提供域名解析

[root@dnssvr ~]# vi /var/named/chroot/var/named/benet.com.zone

……

@      IN      NS      dnssvr.benet.com.

dnssvr  IN      A      173.17.17.2

www    IN      A      173.17.17.11

[root@dnssvr ~]# vi /var/named/chroot/var/named/accp.com.zone

……

@      IN      NS      dnssvr.benet.com.

www    IN      A      173.17.17.11

2.为虚拟主机准备网页文档

[root@www ~]# mkdir /var/www/html/benetcom[root@www ~]# mkdir /var/www/html/accpcom[root@www ~]# echo "

www.benet.com

" > /var/www/html/benetcom/index.html[root@www ~]# echo "

www.accp.com

" > /var/www/html/accpcom/index.html

3.添加虚拟主机配置

root@www ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf //创建独立的配置文件

  //设置目录访问权限

   Order allow,deny

   Allow from all

NameVirtualHost 173.17.17.11

  //设置benet虚拟站点

   DocumentRoot/var/www/html/benetcom

   ServerName www.benet.com 

   ErrorLog  logs/www.benet.com.error_log

   CustomLog logs/www.benet.com.access_log common

//设置accp虚拟站点

DocumentRoot /var/www/html/accpcom

ServerName www.accp.com

ErrorLog  logs/www.accp.com.error_log

CustomLog logs/www.accp.com.access_log common

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf //加载独立的配置文件

……

Include conf/extra/httpd-vhosts.conf

[root@www ~]# /usr/local/httpd/bin/apachectl restart

4.构建虚拟主机——基于IP

应用示例:

构建2个虚拟Web站点:

www.bdqn.cn,IP地址为 220.181.120.61

www.jbit.cn,IP地址为 122.115.32.133

在浏览器中访问这两个IP时,分别显示不同的内容


DocumentRoot /var/www/html/bdqncn

ServerName www.bdqn.cn

……

DocumentRoot /var/www/html/jbitcn

ServerName www.jbit.cn

……

5、构建虚拟主机——基于端口

应用示例:

构建2个虚拟Web站点:

www.benet.com,IP地址、端口为 173.17.17.11:80

www.accp.com,IP地址、端口为 173.17.17.11:8353

在浏览器中访问这两个端口时,分别显示不同的内容

DocumentRoot /var/www/html/accpcom

ServerName www.accp.com

……

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf

……

Include conf/extra/httpd-vhosts.conf

Listen 173.17.17.11:80

Listen 173.17.17.11:8353

你可能感兴趣的:(Web网站服务-Apache)