Apache服务器的搭建

简介

Apache 程序是目前拥有很高市场占有率的 Web 服务程序之一,其跨平台和安全性广泛被认可且拥有快速、可靠、简单的 API 扩展。
图所示为 Apache 服务基金会的著名Logo,它的名字取自美国印第安人的土著语,寓意着拥有高超的作战策略和无穷的耐性。Apache 服务程序可以运行在 Linux 系统、UNIX 系统甚至是 Windows 系统中,支持基于IP、域名及端口号的虚拟主机功能,支持多种认证方式,集成有代理服务器模块、安全Socket 层(SSL),能够实时监视服务状态与定制日志消息,并有着各类丰富的模块支持。

Apache起源
源于 A Patchy Server,著名的开源Web服务软件
1995年时,发布Apache服务程序的1.0版本
由Apache软件基金会(ASF)负责维护
最新的名称为 “Apache HTTP Server”
官方站点:http://httpd.apache.org/
Apache服务器的搭建_第1张图片
Apache 程序是在 RHEL 5、6、7 系统的默认 Web 服务程序。

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

搭建过程

RPM 的安装
从系统光盘中获取安装包
[root@localhost ~]# ls /media/cdrom/Server | grep httpd
httpd-2.2.3-6.el5.i386.rpm
httpd-devel-2.2.3-6.el5.i386.rpm
httpd-manual-2.2.3-6.el5.i386.rpm
system-config-httpd-1.3.3.1-1.el5.noarch.rpm

主要目录和文件
服务目录:/etc/httpd/
主配置文件:/etc/httpd/conf/httpd.conf
网页目录:/var/www/html/
服务脚本:/etc/init.d/httpd
执行程序:/usr/sbin/httpd
访问日志:/var/log/httpd/access_log
错误日志:/var/log/httpd/error_log

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
# This is the main Apache server configuration file ……(注释行信息)
ServerRoot "/etc/httpd" (全局配置)
ServerName www.openlab.com
……
(区域配置)
……

……

……

……

常用的全局配置参数
ServerRoot:服务目录
ServerAdmin:管理员邮箱
User:运行服务的用户身份
Group:运行服务的组身份
ServerName:网站服务器的域名
DocumentRoot:网页文档的根目录
Listen:监听的IP地址、端口号
PidFile:保存httpd进程PID号的文件
DirectoryIndex:默认的索引页文件
ErrorLog:错误日志文件的位置
CustomLog:访问日志文件的位置
LogLevel:记录日志的级别,默认为warn
Timeout:网络连接超时,默认为300秒
KeepAlive:是否保持连接,可选On或Off
MaxKeepAliveRequests:每次连接最多请求文件数
KeepAliveTimeout:保持连接状态时的超时时间
nclude:需要包含进来的其他配置文件

httpd服务的日志
两类日志文件
访问日志:/var/log/httpd/access_log
错误日志:/var/log/httpd/error_log
httpd.conf中对日志的设置
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
……(通用日志格式)
ErrorLog logs/error_log
CustomLog logs/access_log common

Web站点的典型应用:
测试httpd服务器的性能
构建虚拟Web主机
建立系统用户的个人主页
httpd服务的访问控制

测试httpd服务器的性能

ab命令
Apache Benchmark,Apache基准测试工具
格式:ab [-q] -c 并发请求数 -n 总的请求数 [http://]域名[:端口]/路径

实例
[root@www ~]# ulimit -n 3600 (3600为修改允许打开的最大文件数)
[root@www ~]# ab -q -c 2000 -n 4000 http://www.openlab.com/

构建虚拟WEB主机

虚拟Web主机
即在同一台服务器中运行多个Web站点的应用,其中每一个站点并不独立占用一台真正的计算机
httpd支持的虚拟主机类型:
基于域名的虚拟主机
基于IP地址的虚拟主机
基于端口的虚拟主机

基于域名的虚拟Web主机
应用示例1:
构建2个虚拟Web站点:
www.benet.com,IP地址为 173.17.17.11
www.accp.com,IP地址为 173.17.17.11
在浏览器中访问这两个域名时,分别显示不同的内容

[root@www htdocs]# vi /etc/httpd/conf/httpd.conf
……
NameVirtualHost 173.17.17.11

DocumentRoot /var/www/html/openlab
ServerName www.openlab.com


DocumentRoot /var/www/html/test
ServerName www.test.com

基于IP地址的虚拟Web主机
应用示例2:
构建2个虚拟Web站点:
www.benet.com,IP地址为 173.17.17.11
www.accp.com,IP地址为 192.168.4.1
在浏览器中访问这两个IP时,分别显示不同的内容

[root@www htdocs]# vi /etc/httpd/conf/httpd.conf
……

DocumentRoot / var/www/html/openlab
ServerName www.openlab.com


DocumentRoot / var/www/html/test
ServerName www.test.com

基于端口虚拟Web主机
应用示例3:
构建2个虚拟Web站点:
www.benet.com,IP地址、端口为 173.17.17.11:80
www.accp.com,IP地址、端口为 173.17.17.11:8080
在浏览器中访问这两个端口时,分别显示不同的内容

[root@www htdocs]# vi /etc/httpd/conf/httpd.conf
……
Listen 173.17.17.11:80
Listen 173.17.17.11:8080

DocumentRoot / var/www/html/openlab
ServerName www.openlab.com


DocumentRoot / var/www/html/test
ServerName www.test.com

建立系统用户的个人主页

  1. 修改httpd.conf,启用个人主页功能
    UserDir public_html
    确认目录区域设置
  2. 建立个人主页测试网页
    ~/public_html/index.html
    添加权限:chmod o+x /home/jerry/
  3. 重新启动httpd服务
    /usr/local/apache2/bin/apachectl restart
  4. 访问测试
    http://www.benet.com/~user

[root@www ~]# vi /etc/httpd/conf/httpd.conf
……
#UserDir disable(若存在此行,应该注释掉)
……
UserDir public_html

AllowOverride none
Options none
Order allow,deny
Allow from all

httpd服务的访问控制

基于用户的访问控制
添加认证授权设置
[root@www ~]# vi /etc/httpd/conf/httpd.conf
……

……
AuthName “OpenLab"
AuthType Basic
AuthUserFile /var/www/html/openlab/.htpasswd(用户密码文件)
require valid-user

……

基于用户的访问控制
创建存储认证用户账号及口令的文件
需使用htpasswd工具

[root@www ~]# htpasswd -c \

/usr/local/awstats/wwwroot/.htpasswd awuser
添加一个授权用户

基于客户端地址的访问控制
Order配置项,定义控制顺序
先允许后拒绝,默认拒绝所有:Order allow,deny
先拒绝后允许,默认允许所有:Order deny,allow
Allow、Deny配置项,设置允许或拒绝的地址
Deny from address1 address2 …
Allow from address1 address2 …


Order allow,deny
Allow from 192.168.0.0/24
Deny from 192.168.0.100

你可能感兴趣的:(Apache服务器的搭建)