【ACCESS精品源码栏目提醒】:网学会员为广大网友收集整理了,【精品】linux_Apache - 其它资料,希望对大家有所帮助!
第3讲 Apache服务器配置与管理 The Number One HTTP Server On The Internet 主要内容 Web服务概述 Apache服务器 安装Apache服务器 Apache服务器的基本配置 使用Webalizer进行日志统计分析 Web服务概述 Web服务是Internet中最为重要的应用 Web服务采用客户端/服务器模型 客户端为浏览器,它提供了良好、统一的用户界面。
浏览器的作用为解释和显示Web页面,响应用户的输 入请求,并通过HTTP协议将用户请求传递给Web服 务器 Web服务器运行服务器程序,最基本的功能是侦听和 响应客户端的HTTP请求,向客户端发出请求处理结 果信息 HTTP协议的默认端口为80 Apache服务器 从1996年4月以来,Apache已经成为Internet上最流行 的Web服务器 根据著名的Web服务器调查公司Netcraft的调查结果, 截至2005年10月,Apache的市场占有率为69.89,而 同期IIS的市场占有率为20.55 Apache的优点 跨平台。
能运行在UNIX、Linux和Windows等多种操作系统 平台上 无限可扩展性。
借助开放源代码开发模式的优势,全世界 的许多程序员为Apache编写了许多功能模块 工作性能和稳定性远远领先于其他同类产品 安装Apache服务器 查询系统是否安装了Apache rpm -qa grep httpd 如果没有安装,则插入RHEL4的第2张安装盘,运行 如下命令进行安装 rpm -vih /media/cdrom/Redhat/RPMS/httpd-2.0.52- 19.ent.i386.rpm 启动Apache服务器 service httpd restart 或者 /etc/init.d/httpd restart 测试Apache服务器 注意:防火墙的配置 Apache服务器的基本配置 默认的配置文件信息 http.conf文件的格式 Web服务的基本配置 个人目录 创建虚拟目录 设置目录权限 用户认证 虚拟主机配置 页面重定向 默认的配置文件信息 主配置文件:/etc/httpd/conf/http.conf 服务器的根目录(ServerRoot):/etc/httpd 根文档目录(DocumentRoot):/var/www/html 访问日志文件:/etc/httpd/logs/
access_log 错误日志文件:/etc/httpd/logs/error_log 模块存放路径:/etc/httpd/modules httpd.conf文件的格式 httpd.conf配置文件主要由全局环境、主服务器配置和 虚拟主机3个部分组成 配置语句的语法格式: 配置参数名称 参数值 Web服务的基本配置(1) 主目录的路径(DocumentRoot) 默认位置:/var/www/html 可以将需要发布的网页放在这个目录下 默认文档 在浏览器中,输入Web站点的IP地址或域名即显示出来的 Web页面 DirectoryIndex index.html index.htm index.php index.html.var 配置Apache监听的IP地址和端口号 Listen 80(在本机所有可用IP地址上监听TCP 80端口) 只监听IP地址为192.168.16.177的80端口和192.168.18.178的 8080端口 Listen 192.168.16.177 80 Listen 192.168.18.178 8080 Web服务的基本配置(2) 设置相对根目录路径 相对根目录通常是Apache存放配置文件、日志文件、模块 文件等的地方。
在默认情况下,相对目录为/etc/httpd,它一般包含conf和 logs子目录 ServerRoot “/etc/httpd” 设置日志文件 错误日志 ErrorLog logs/error_log(位于目录/var/httpd) 访问日志 CustomLog logs/
access_log combined Web服务的基本配置(3) 设置网络管理员的Email地址 ServerAdmin xiaoykmycorp.com 设置Apache服务器自身的主机名 ServerName 192.168.100.222:80 设置默认字符集 AddDefaultCharset GB2312(避免出现中文乱码) 创建虚拟目录 如果希望在主目录以外其他目录中进行网页发布,需 要设置虚拟目录 使用虚拟目录的特点 便于访问 便于移动站点中的目录 能灵活加大磁盘空间 安全性好,可设置不同的访问权限 使用Alias选项创建虚拟目录 Alias /icons/ “/var/www/icons/” Alias /ftp “/var/ftp” 设置目录权限(1) 可以使用和为主目 录或虚拟目录设置权限 例子: Options Indexes MultiViews AllowOverride None Order allowdeny Allow from all 设置目录权限(2) Options:定义目录使用哪些特性 Indexes:允许目录浏览(通常应该禁用此功能) MultiViews:允许Content negotiation的多视图 All:包含除了MultiViews之外的所有特性。
如果没有Options语句,默认 为All ExecCGI:允许执行CGI脚本 FollowSymLinks:可以在该目录中使用符号链接 AllowOverride:定义位于每个目录下的.htaccess(访问控制)文 件中的指令类型 出于效率和安全的原因,通常应该避免使用.htaccess AllowOverride None 注意:为了让主目录允许目录浏览,需要删除/etc/httpd/conf.d 目录下的welcome.conf文件,然后重启Apache。
(这里不能将 welcome.conf重命名为welcome2.conf,为什么?) 设置目录权限(3) Order:设置默认的访问权限和Allow和Deny语句的处 理顺序 Order allowdeny 默认禁止所有客户端的访问,且Allow语句在Deny语句之前被匹配。
如果某条件同时匹配Deny和Allow语句,则Deny语句起作用(Allow 语句被覆盖) Order deny allow 默认允许所有客户端的访问,且Deny 语句在Allow语句之前被匹 配。
如果某条件同时匹配Deny和Allow语句,则Allow语句起作用 ( Deny语句被覆盖) 例1:允许所有客户端访问 Order allowdeny Allow from all 设置目录权限(4) 例2:除了来自hacker.com域和IP地址为192.168.16.111的客户 端外,允许其他所有客户端访问 Order denyallow Deny from hacker.com Deny from 192.168.16.111 例3:仅允许来自网络192.168.16.0/24的客户端访问 Order allowdeny Allow from 192.168.16.0/24 设置目录权限(5) 例4:仅允许来自网络192.168.16.0/24的客户端访问,但是IP 地址为192.168.16.111的客户端除外 Order allowdeny Allow from 192.168.16.0/24 Deny from 192.168.16.111 对比如下的配置 Order denyallow Allow from 192.168.16.0/24 Deny from 192.168.16.111 上述3条语句实际上允许所有的客户进行访问 用户认证(1) 用户认证是保护网络系统资源的第一道防线,控制 着所有登录并检查访问用户的合法性,其目标是仅 让合法用户以合法的权限访问网络系统资源 例子 假设有一个名为myscret的虚拟目录,其对应的物理路径是 /usr/local/myscret,现需要对其启用用户认证功能,只允 许用户linden和tom访问 用户认证(2)1. 建立口令文件 要实现用户认证功能,首先需要建立保存用户名和口令的 文件 Apache自带的 htpasswd提供了建立和更新存储用户名、密 码的口令文件的功能 注意:口令文件必须放在不能被网络访问的位置,以避免 被下载 本例中将口令文件放在/etc/httpd目录下,文件名为 mysecretpwd Htpasswd -c /etc/httpd/mysecretpwd linden(c表示创建新文 件) Htpasswd /etc/httpd/mysecretpwd tom 如果要删除用户,可以直接删除认证口令文件中相应的行 用户认证(3)2. 建立虚拟目录并配置用户认证 ① 在Apache的主配置文件httpd.conf 文件中,加入以下语句 Alias /mysecret “/var/local/ mysecret” AuthType Basic Authname “This is a private directory. Please Login” AuthUserFile /etc/httpd/mysecretpwd Require user linden tom Require valid-user(授权给认证口令文件中的所有用户) ② 建立虚拟目录 / var/local/mysecret mkdir / var/local/mysecret chcon -t httpd_sys_content_t / var/local/mysecret (激活SELinux时) echo “Test Page” / var/local/mysecret/index.html