一.基本概念:

1. Web服务的定义

Web服务是基于B/S模型,服务器端可以为客户端提供动态的,交互的超文本服务;

2.Web服务器的含义

运行http协议和Web服务器软件且能够为客户端提供Web服务的主机称为Web服务器

3. Web服务的工作流程

⑴ 客户端通过客户程序建立与服务器的连接;

⑵ 访问中服务器的相应资源

⑶ 断开连接

4. 常见的服务器软件:

httpd  lighttpd thttpd nginx IIS Webspere Weblogic tomcat

5. APACHE特点:

可移植性强

支持DSO功能

支持JSP、PHP、CGI

支持MYSQL、POSTGRESQL

支持基于IP地址/域名的虚拟主机

支持OPENSSL

二.基本配置与使用

1.所需要的软件包:

httpd-2.2.3-31.e15.i386.rpm
httpd-devel-2.2.3-31.el5.i386.rpm
httpd-manual-2.2.3-31.el5.i386.rpm
system-config-httpd-1.3.3.1-1.el5.noarch.rpm

2.配置文件的目录:

/etc/httpd/conf/httpd.conf (Apache 的核心配置文件)

/etc/rc.d/init.d/httpd    (Apache 的启动脚本)

/usr/sbin/apachectl        (Apache 的管理工具)

/etc/httpd/modules        (Apache模块存放目录)

/etc/httpd/conf         (存放httpd的配置子文件)

/usr/bin/htpasswd    (建立http用户和设置用户口令)

.htaccess           (存放目录的访问控制选项)

/var/www/html              (存放网页的配置目录)

3.主配置文件(/etc/httpd/conf/httpd.conf)中的一些常用配置:

❶Timeout 300        定义服务器与客户端的连接超时时间
❷KeepAlive On/Off  设置Apache是否保持连接
❸http1.1MaxKeepAliveRequests 100 定义http1.1的一次连接中允许的最大请求数

❹KeepAliveTimeout 15   定义一次连接中的两次请求之间的间隔时间

❺MinSpareServers 5 设置httpd产生的最少空闲子进程数

❻MaxSpareServers 20 设置httpd产生的最大空闲子进程数

❼StartServers 8     设置httpd启动时产生的子进程个数
❽MaxClients 150        定义服务器的最大并发连接数❾MaxRequestsPerChild 1000 设置每一个子进程接受的最大请求数

❿Listen  端口号/IP 地址:端口号 设置服务器httpd守护进程的监听端口
4.安装web服务

yum install httpd -y (如没有安装yum源,可以使用rpm进行安装)

service httpd start

三:配置功能实现,以案例为主:

以下实验过程如果无法访问,一定通过getenforce命令查看状态,必须为Permissive,否则通过setenforce 0进行修改。

案例一:实现用户家目录的访问:

编辑主配置文件:vim /etc/httpd/conf/httpd.conf

1.在配置文件中进行修改:注销 355行    # UserDir disable
                                                    开启362行: UserDir public_html 保存退出

(由于appache主配置文件内容比较多,我在这里添上行号,方便修改,行号可能有出入,不过基本都在这一片,好好查找,以防出错)

2.su - student

mkdir public_html

cd /public_html

vim index.html (任意编辑一句话,进行实验效果的验证)

This is a home dir!保存退出

exit 退出student用户登录,切换root用户登录

chmod o+x /home/student  修改权限

3.service httpd restart

4.效果验证:在浏览器中输入http://192.168.0.8/~student

案例二:修改默认目录(/var/www/html),实现其他目录访问:

1.mkdir /www 创建目录

2.修改主配置文件:

281行:DocumentRoot "/var/www/html" 修改为DocumentRoot    "/www"
306行:  修改为

保存退出

3.vim /www/index.html

This is a www dir test.

4.service httpd restart  重启服务

5.实验效果验证:在浏览器中输入http://192.168.0.8

案例三:实现www下子目录的访问:

①cd /www
mkdir bbs
vim /bbs/index.html

This is bbs dir.

进行访问:http://192.168.0.8/bbs

②如果bbs不在www目录下
mv bbs /tmp
需要修改配置文件:Alias /icons/ "/var/www/icons/"
                                Alias /bbs    "/tmp/bbs"
重启服务,访问即可
 

案例四:浏览时需要提供密码才能访问:
1.修改配置文件:AllowOverride None(是否允许覆盖) 修改为   AllowOverride AuthConfig
                                                                    AuthName "Welcome"
                                                                    AuthType basic  (认证类型,basic基于本地文件认证)
                                                                    AuthUserFile /etc/httpd/.htpasswd
                                                                    require(valid-user)  user user1 user2 (允许用户登录)
                           修改完成保存退出,重启服务
2.添加访问用户   htpasswd -cm /etc/httpd/.htpasswd user1
                            htpasswd -m /etc/httpd/.htpasswd user2

3.实验效果验证:在浏览器中输入http://192.168.0.8

案例五:https方式访问
①安装mod_ssl模块:yum install mod_ssl*
                 cd /etc/httpd/conf.d
               ls查看会生成ssl.conf
②制作CA:

cd /etc/pki/tls
vim openssl.cnf
修改:[ CA_default ]
dir = /etc/pki/CA

cd /etc/pki/CA
openssl genrsa 1024 > private/cakey.pem生成密钥对
openssl req -new -x509 -key pravite/cakey.pem  -out cacert.pem -days 365 自签
mkdir certs newcerts crl
touch index.txt serial
echo 01 > serial
③为web服务签证:

cd /etc/httpd
 mkdir ssl
 cd ssl/
openssl genrsa 1024 > httpd.key  生成密钥
openssl req -new -key httpd.key -out httpd.csr 证书签署请求
openssl ca -in httpd.csr -out httpd.crt

④vim /etc/httpd/conf.d/ssl.conf
修改:SSLCertificateFile /etc/httpd/ssl/httpd.crt
      SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
  
DocumentRoot "/www"
ServerName www.aaa.com:443

在Windows下:C:\Windows\System32\drivers\etc   修改hosts文件,将ip地址及www.aaa.com写入

将linux下的/etc/pki/CA下的cacert.pem放到Windows下,修改为cacert.crt
修改Ie设置:工具->内容->证书->受信任的证书颁发机构,导入证书即可