第5、6章 web网站服务

胡勇军web 网站服务Apache在 Linux 系统中通过 Apache 来搭建web 网站服务特点:开放源代码、跨平台应用支持多种网页编程语言模块化设计、运行稳定、良好的安全性安装Apache2.

胡勇军

web 网站服务

Apache

在 Linux 系统中通过 Apache 来搭建web 网站服务

特点:

开放源代码、跨平台应用

支持多种网页编程语言

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

安装Apache2.4.4.

源码包安装 Apache (确保系统没有安装 rpm 包的 Apache 服务)

安装前准备 解压包apache 软件包 解压插件apr 和apr-util 压缩包, 并复制到apache 源码目录下的srclib 目录下, 并去掉版本号

安装编译工具: gcc 、gcc-c 、make 、pcre-devel

1. 配置

./configure --prefix=/usr/local/apache

--enable-so

--enable-rewrite

胡勇军

,

胡勇军

--enable-charset-list --enable-mods-shared=most

--with-mpm=worker

(--enable-mods-shared=most 动态编译为DSO 模块

--with-mpm=worker 配置apache 以何种模式编译

‐‐prefix=/usr/local/apache2安装位置 ‐‐enable‐so支持动态加载模块 ‐‐enable‐rewrite支持URL 重写 ‐‐enable‐charset‐‐lite支持字符集)

2. 编译

make

3. 安装

Apache 的安装目录和文件

服务目录:/usr/local/apache/ (配置时指定的)

主配置文件:/usr/local/apache/conf/httpd.conf

网页目录:/usr/local/apache/htdocs/

服务脚本:/usr/local/apache/bin/apchectl

执行程序:/usr/local/apache/bin/httpd

访问日志:/usr/local/apache/logs/access_log

错误日志:/usr/local/apache/logs/error_log

胡勇军 make install

,

胡勇军

源码包安装 apache 服务后,为了更方便得管理,可以把程序脚本添加到默认搜索路径,即修改 PATH 变量,或者给程序脚本创建链接到 PATH 中存在的目录中。

修改 PATH 变量:PATH=$PATH:/usr/local/apache/bin (此修改在重启系统后失效,可以写在/etc/profile等文件中) 创建链接:

ln ‐s /usr/local/apache/bin/* /usr/local/bin

管理:apachectl { start | restart | stop }

也可以将 httpd 添加为系统服务,通过 service 和 chkconfig 来管理。

复制服务脚本至/etc/rc.d/init.d或/etc/init.d目录中

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

编辑/etc/init.d/httpd

chkconfig :服务识别参数,35表示在级别 3和 5种开机自启, 88和 18表示启动和关闭的顺序

description :服务的描述信息 chkconfig --add httpd

管理:service httpd { start | restart | stop }

查看服务是否启用:netstat -auptn | grep

胡勇军

,

胡勇军

( httpd服务即 apache 服务)

主配置文件中的常用全局配置项

ServerRoot :httpd 服务的根目录

Listen :监听的端口号,默认为 80

User 和 Group :运行 httpd 进程的用户和组身份 ServerAdmin :管理员邮箱

ServerName :网站服务器的域名(FQDN)

DocumentRoot:网页文档的根目录

DirectoryIndex :默认文档,多个以空格隔开 Include :include 引入其他配置文件

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

ErrorLog :错误日志文件的位置

CustomLog :访问日志文件的位置

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

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

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

MaxKeepAliveRequests :每次连接最多请求文件数 KeepAliveTimeout :保持连接状态时的超时时间

日志查看:cat /usr/local/apache/logs/access_log

胡勇军

,

胡勇军

部署 AWStats 分析日志

解压 awstats 软件包,移至/usr/local目录下 unzip awstats-7.0.zip mv awstats-7.0 /usr/local/awstats 切换到 awstats/tools目录下,执行 awstats_configure.pl,创建配置文件,进入交互式界面,根据提示配置。

./ awstats_configure.pl 修改站点配置文件 vi /etc/awstats/awstats.* 指定分析的日志和指定存放统计数据的目录 LogFile="/usr/local/apache/logs/access_log" DirData=/var/lib/awstats 创建存放统计数据的目录 mkdir /var/lib/awstats 执行日志分析,更新统计数据 /usr/local/awstats/tools/awstats_updateall.pl now

(为了提高日志准确性,需要设置周期性计划任务定时更新统计

数据)

查看日志分析:

胡勇军

,

胡勇军

区域配置项:

Options FollowSymLinks 控制选项,允许使用符号链接 AllowOverride None 不允许隐含控制文件中覆盖配置

Order deny,allow 访问控制类型

allow [Deny ] from all 允许[禁止]任何人访问 Require all granted 授权所有用户访问

区域配置项针对某一个网页目录设置,以开始,以 结尾,选项配置在中间,有点类似 html 的标签,在标签中指定网页目录,例如,就是针对/var/www目录做的设置。

Options :访问链接方式,有多种,例如 Options Indexes 表示允许以目录形式访问, 即如果没有默认文档, 就以目录形式直接访问此目录中的文件内容。

Require :要求授权用户才能访问,all granted表示授权所有用户,all denied则表示都不授权

Order :用来配置客户机的访问限制,控制选项有两种 allow,deny :拒绝所有未明确允许的客户机 (白名单) deny,allow :允许所有未明确拒绝的客户机 (黑名单) 通胡勇军

,

胡勇军

过 Deny from来列出拒绝/允许的主机列表。可以是 IP 地址、IP 网段、主机名、域名等,多个以空格隔开。使用 “all ” 表示任意主机。

例如:(只允许192.168.1.0 网段和192.168.2.9 的主机访问)

Order allow,deny allow from 192.168.1.0/24 192.168.2.9

用户授权限制

1. 创建用户认证数据文件(会提示输入密码)

htpasswd -c /usr/local/apache/conf/.user tom -c :新建数据文件,若文件已存在,则不用添加

2. 添加用户授权配置

在区域配置标签中添加

AuthName :受保护区域名称 AuthType :认证类型 AuthUserFile :认证文件路径 Require :要求授权用户才能访问, valid-user

表示认证文件胡勇军

,

胡勇军

中的 所有合法用户,也可以指定用户(如 tom )

虚拟主机和虚拟目录等区域性配置一般写在单独的配置文件中,然后在主配置文件中使用include 引入,方便管理

(注:在主配置文件中的所有相对路径都是基于apache 的根目录的,也就是/usr/local/apache)

虚拟主机 (一台主机上管理多个不同的网站)

虚拟主机的三种实现方式:基于 IP 、端口号、主机名 配置 ( httpd.conf )

虚拟主机的配置和区域配置一样,配置项写在在一对标签 中。

基于 IP 的虚拟主机

胡勇军 DocumentRoot /var/www/benet ServerName www.ibm.com DocumentRoot :指定网站的根目录 ServerName :网站的域名 其它配置选项和全局配置中一样

,

胡勇军

通过不同IP 访问不同的网站

● 基于不同端口虚拟主机

首先 httpd 服务要监听设定端口在主配置文件中通过 Listen 选项设置

Listen 8001 Listen 8002

● 基于域名的虚拟主机

胡勇军 通过 http://192.168.1.1:端口号进行访问

,

胡勇军

通过域名进行访问

注:基于域名的虚拟主机需要DNS 支持,且设置了域名虚拟主机,再通过IP 进行访问时,访问的是第一个虚拟主机。

虚拟目录

通过Alias 来定义

访问:http://域名/虚拟目录名

胡勇军 例如:http://www.benet.com/vdir

标签: