WEB服务器的工作原理:
Web系统是客户/服务器模式(C/S)的,有服务器端和客户端程序两部分。
Web客户端与Web服务器端的通信过程如下(用户每次浏览网站获取一个页面,都会重复如下的连接过程,周而复始):
1)Web客户端通过浏览器根据用户输入的URL地址连接到相应的Web服务器;
2)从Web服务器上获得指定的Web文档;
3)断开与远程的Web服务器的连接.
我的计算机配置:XP中装VM,VM中装的RedHat(IP:192.168.121.132)
安装Apache服务器:
Apache官网下载地址:http://httpd.apache.org/download.cgi
1) 安装Apache的硬件和软件配置要求
确保磁盘至少有50MB的空闲空间;
确保操作系统已经安装并正确配置了gcc
2) 解压httpd-2.4.1.tar.gz包文件
# tar –xzvf httpd-2.4.1.tar.gz
3) 进入httpd-2.4.1目录,使用configure配置安装参数
#./configure –prefix=/usr/local/apache2 (--with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre)
4) 编译并安装Apache
#make
#make install
安装过程中遇到的问题,解决方法:
#./configure --prefix= /usr/local/apache2 ……检查编辑环境时出现如下:1、checking for APR... no
configure: error: APR not found . Please read the documentation.
安装APR(Apache Portable Runtime )
apr下载地址:http://apr.apache.org/download.cgi
#tar -zxvf apr-1.4.2.tar.gz //unzip -o apr-1.4.2.zip
#cd apr-1.4.2
#./configure --prefix =/usr/local/apr
#make
#make install
2、checking for APR-util... no
configure: error: APR-util not found . Please read the documentation.
安装APR-util
apr-util下载地址:http://apr.apache.org/download.cgi
#tar -zxvf apr-util-1.3.9.tar.gz
#cd apr-util-1.3.9
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#make
#make install
3、configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
安装pcre
pcre下载地址:http://sourceforge.net/projects/pcre/
#tar –zxvf pcre-8.10. tar.gz ( unzip pcre-8.10.zip)
#cd pcre-8.10
#./configure --prefix=/usr/local/pcre
#make
#make install
Apache服务的启动、关闭和检测
#cp /usr/local/apache2/bin/apachectl /usr/local/sbin //复制Apache启动文件到/usr/local/sbin
#apachectl start\stop\restart //启用、停止、重启
#netstat –an|grep tcp (查看是否有80端口(默认))
# ps -ef |grep httpd (进程查看)
浏览器登录http://127.0.0.1或http://localhost或系统IP(查看是否出现/usr/local/apache2/htdocs/index.html文件中的相应内容)
usr/local/apache2/htdocs 为网页文件根目录
Apache的基本配置及维护:
配置文件所在位置:/usr/local/apache2/conf/httpd.conf
# apachectl -V //查看Apache软件的版本信息
# apachectl -l //查看已经被编译的模块
#apachectl configtest //验证配置http.conf是否正确
Apache日志分析:
Apache服务器运行后会生成两个日志文件:
access_log (访问日志) error_log (错误日志)
[root@localhost Server]# pwd (软件包所在目录位置)
/media/RHEL_5.2 i386 DVD/Server
[root@localhost Server]# ll |grep webalizer-2.01_10-30.1.i386.rpm
-rw-r--r-- 380 root root 107121 2007-01-19 webalizer-2.01_10-30.1.i386.rpm
[root@localhost Server]# rpm -ivh --test webalizer-2.01_10-30.1.i386.rpm (模拟安装)
warning: webalizer-2.01_10-30.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
[root@localhost Server]# rpm -ivh webalizer-2.01_10-30.1.i386.rpm (安装)
warning: webalizer-2.01_10-30.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:webalizer ########################################### [100%]
[root@localhost etc]# rpm -lq webalizer (查看安装的软件包清单)
/etc/cron.daily/00webalizer
/etc/httpd/conf.d/webalizer.conf
/etc/webalizer.conf
/usr/bin/webalizer
/usr/bin/webazolver
/usr/share/doc/webalizer-2.01_10
/usr/share/doc/webalizer-2.01_10/README
/usr/share/man/man1/webalizer.1.gz
/var/lib/webalizer
/var/www/usage
/var/www/usage/msfree.png
/var/www/usage/webalizer.png
[root@localhost htdocs]# vi /etc/webalizer.conf (修改配置文件,红色为修改后)
#LogFile /var/log/httpd/access_log
LogFile /usr/local/apache2/logs/access_log
#OutputDir /var/www/usage
OutputDir /usr/local/apache2/htdocs/loganalyze
[root@localhost bin]# /usr/bin/webalizer (运行webalizer,将在/usr/local/apache2/htdocs/loganalyze目录下生成相应的报表)
Apache安全配置:
由httpd.conf配置文件中的Diretory段来设定,通过Allow、Deny、Order指令进行配置
例如:<Directory /usr/local/apache2/htdocs/images>
AllowOverride none
Order deny ,allow (先执行拒绝,在执行允许规则)
Deny from all (拒绝所有客户端访问)
Allow from 192.168.121.132 (允许REdHat本身访问)
#Require all denied
</Directory>
效果:RedHat浏览器上访问允许(在RedHat上访问时须输入192.168.121.132才能得出效果,此时不能用localhost登录);XP上访问images文件时就不能正常访问。
通过用户验证来保证Web服务器的初级安全:
当Web服务器请求经此认证模式保护的URL时,将会出现一个对话框,要求用户输入用户名和口令。用户输入后,传给Web服务器,Web服务器验证它的正确性。如果正确,则返回页面;否则将返回401错误。
1) 创建保存用户名和口令的认证口令文件users(在/usr/local/apache2/conf下),并添加用户;
#htpasswd -c /usr/local/apache2/conf/users lidong (添加名为lidong的用户信息到users; -c选项为创建文件)
2) 对httpd.conf配置文件中的<Directory>段进行设置,添加如下:(设置完重启即可生效)
<Directory "/usr/local/apache2/htdocs/secure_info">
Options Indexes FollowSymLinks
AllowOverride none
AuthType Basic (认证类型:基本认证)
AuthName "secure_info_auth"
AuthUserFile /usr/local/apache2/conf/users (口令文件位置)
require user lidong
Order deny,allow
Deny from all
Allow from 192.168.121.132
#Require all denied
</Directory>
3)测试。浏览器中登录192.168.121.132/secure_info ,若登录成功则将要求用户输入用户名和用户口令