一.基本概念:
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设置:工具->内容->证书->受信任的证书颁发机构,导入证书即可