Linux网络服务:HTTPD服务与实现
Httpd基本服务:
主要服务程序: /usr/sbin/httpd
系统服务脚本:/etc/rc.d/init.d/httpd
服务根目录:/etc/httpd/
主配置文件:/etc/httpd/conf/httpd.conf
配置目录:/etc/httpd/conf.d/
网站根目录:/var/www/html/
模块目录:/etc/httpd/modules/
访问日志:/var/log/httpd/access_log
错误日志:/var/log/httpd/error_log目录和文件:
服务程序相关:
--系统服务脚本
--默认端口:TCP80
--进程名:httpd
--进程所有者:apache
配置文件结构:
--全局设置:配置参数 值
--目录设置:<Directoy 目录>…</Directory>
--访问位置设置:<Location URL>…</Location>
--虚拟主机设置:<VirtualHost>…</ VirtualHost >
常用的全局设置参数:
--ServerName:本站点的FQDN名称
--DocumentRoot:网页文档的根目录
--DirectoryIndex:默认索引页/首页文件
--CustomLog:访问日志文件的位置
试验一:基本HTTP服务器的配置
主机名设为:www.tarena.com 192.168.10.10
默认首页包括:index.html、index.php
开启保持连接
确认默认httpd是否支持php
前提条件在客户端配置hosts文件C:\Windows\System32\drivers\etc
192.168.10.10 www.tarena.comwww
1、软件包的安装
[root@localhost ~]# yum -y install httpd
2、修改主配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf //配置文件
...
74 KeepAlive On //开启保持连接
...
265 ServerName www.tarena.com:80 //本站点名称
...
391 DirectoryIndex index.html index.php //默认索引页
...
3、启动服务
[root@localhost ~]# service httpd restart
[root@localhost ~]# chkconfig httpd on
新建测试页面
[root@localhost ~]# cat /var/www/html/index.html //新建测试页面
<html>
<head><title>This is a test Page!!!</title>
<body>
<h1>This is www.tarena.com test Page!!!</h1>
</body>
</head>
</html>
[root@localhost ~]# cat /var/www/html/index.php
<?php
phpinfo();
?>
测试:
http://www.tarena.com
http://www.tarena.com/index.php
---------------------------------------------------------------------------------------------------------------------------------
HTTP的访问控制:
Oredr配置项,定义控制顺序
--allow,deny 先允许后拒绝,默认拒绝所有
--deny,allow 先拒绝后允许,默认允许所有
Allow/Deny from配置项,设置权限
--Allow from 地址1 地址2
--Deny from 地址1 地址2
实验二:HTTP的访问控制
只允许192.168.10.5访问www.tarena.com
允许所有用户访问www.tarena.com/authdir/index.html
1、修改主配置文件
[root@localhost ~]# mkdir /var/www/html/authdir
[root@localhost ~]# cat /var/www/html/authdir/index.html //新建默认网页
<html>
<head><title>This is a test Page!!!</title>
<body>
<h1>This is http://www.tarena.com/authdir/index.html!!!</h1>
</body>
</head>
</html>
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf //配置文件
...
306 <Directory "/var/www/html">
...
332 Order allow,deny //默认拒绝所有
333 # Allow from all //注释掉允许所有网段访问
334 Allow from 192.168.10.5 //只允许10.5访问
...
337 <Directory "/var/www/html/authdir">
338 Order allow,deny
339 Allow from all
340 </Directory>
2、启动服务
[root@localhost ~]# service httpd restart
3、在不同客户端测试
[root@localhost ~]# tail /var/log/httpd/error_log
...
[Wed Apr 16 16:52:31 2014] [error] [client 192.168.10.6] client denied by server configuration: /var/www/html/
---------------------------------------------------------------------------------------------------------------------------------
HTTP的用户授权
为目录区段设置授权:
AuthName:认证领域名称,用于弹窗提示
AutoType:认证类型,一般使用basic
AuthUserFile:用户数据文件的路径
Require:指定授权用户和组
Htpasswd [-c] 帐户文件 用户名
C表示新建否则修改密码
试验三:HTTP的用户授权
客户端访问/var/www/html/authdir/需要输入用户名密码验证
1、修改主配置文件
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
...
337 <Directory "/var/www/html/authdir">
338 Order allow,deny
339 Allow from all
340 AuthName "Please Input Password!!" //用于弹窗提示
341 AuthType Basic //认证类型
342 AuthUserFile "/etc/httpd/ . vuser" //用户数据文件路径
343 Require valid-user //授权的用户和组
344 </Directory>
...
2、创建账户密码
[root@localhost ~]# htpasswd -c /etc/httpd/.vuser admin //创建账户密码
New password:
Re-type new password:
Adding password for user admin
3、启动服务测试
[root@localhost ~]# service httpd restart
http://www.tarena.com/authdir
--------------------------------------------------------------------------------------------------------------------------------
实验四:HTTP目录别名
客户端访问http://www.tarena.com/sina时可以访 问/var/www/html/sina.com/bbs下的网页
1、创建测试站点
[root@localhost ~]# mkdir -p /var/www/html/sina.com/bbs //新建目录
[root@localhost ~]# cat /var/www/html/sina.com/bbs/index.html //新建网页
<html>
<head><title>This is a test Page!!!</title>
<body>
<h1>This is bbs.sina.com test Page!!!</h1>
</body>
</head>
</html>
2、修改主配置文件
[root@localhost ~]# tail -n 1 /etc/httpd/conf/httpd.conf
Alias /sina "/var/www/html/sina.com/bbs" //在配置文件最后写对应目录别名
3、启动服务测试
[root@ser1 ~]# service httpd restart
http://www.tarena.com/sina
---------------------------------------------------------------------------------------------------------------------------------
基于域名的虚拟主机
试验七:基于域名的虚拟主机
当用户访问www.baidu.com的时候访问baidu网站
当用户访问www.google.com的时候访问google网站
baidu和google的ip地址一样
确保上面www.tarena.com访问还能访问
前提条件(客户端配置hosts) /修改hosts文件
192.168.10.10www.tarena.comwww
192.168.10.10www.baidu.comwww
192.168.10.10www.google.comwww
1、建立网站存放路径
[root@localhost ~]# mkdir -p /data/web/{baidu,google} /新建网站存放路径
[root@localhost ~]# cat /data/web/baidu/index.html //新建测试网页
<html>
<head><title>This is a test Page!!!</title>
<body>
<h1>This is www.baidu.com test Page!!!</h1>
</body>
</head>
</html>
[root@localhost ~]# cat /data/web/google/index.html
<html>
<head><title>This is a test Page!!!</title>
<body>
<h1>This is www.google.com test Page!!!</h1>
</body>
</head>
</html>
2、修改主配置
[root@localhost ~]# cat /etc/httpd/conf.d/virt.conf //写配置文件
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html //站点目录
ServerName www.tarena.com //站点名称
ErrorLog logs/tarena.com-error_log //访问日志
CustomLog logs/tarena.com-access_log common //错误日志
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /data/web/baidu
ServerName www.baidu.com
ErrorLog logs/baidu.com-error_log
CustomLog logs/baidu.com-access_log common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /data/web/google
ServerName www.google.com
---------------------------------------------------------------------------------------------------------------------------------
AWStats日志分析:
1、PV(访问量):即Page View, 页面浏览量或点击量,用户每次刷新即被计算一次。
2、UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。
3、IP(独立IP):即Internet Protocol,指独立IP数。00:00-24:00内相同IP地址之被计算一次。
实验五:
部署Awstats统计Http访问日志
1、安装软件(软件在/usr/src下)
[root@ser1 ~]# cd /usr/src/
[root@ser1 src]# tar -zxf awstats-7.1.tar.gz
[root@ser1 src]# mv awstats-7.1 /usr/local/awstats
2、为站点建立配置文件
[root@ser1 src]# cd /usr/local/awstats/tools/
[root@ser1 tools]# ./awstats_configure.pl
...
Config file path (‘none‘ to skip web server setup):
> /etc/httpd/conf/httpd.conf //输入apache的主配置文件
...
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y
...
Your web site, virtual server or profile name:
> www.tarena.com //输入你的web服务器名字
...
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
>
...
/usr/local/awstats/tools/awstats_updateall.pl now
Press ENTER to continue...
...
Press ENTER to finish...
3、指定统计的目标日志文件
[root@ser1 tools]# vim /etc/awstats/awstats.www.tarena.com.conf
...
51 LogFile="/var/log/httpd/access_log"
[root@ser1 tools]# mkdir /var/lib/awstats //创建工作目录
4、将日志文件导入Awstats
[root@ser1 tools]# ./awstats_updateall.pl now
[root@ser1 tools]# crontab –e //创建计划任务
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
[root@ser1 tools]# service crond restart
[root@ser1 tools]# chkconfig crond on
验证:
www.tarena.com
[root@ser1 tools]# cat /var/www/html/awstats.html
<html>
<head><meta http-equiv=refresh content="0; url=http://www.tarena.com/awstats/awstats.pl? config=www.tarena.com">
</head>
<body>
</body>
</html>
验证:
http://www.tarena.com/awstats.html
补充:
通过html代码实现网页跳转功能
[root@localhost tools]# cat /var/www/html/awstats.html
<html>
<head><meta http-equiv=refresh content="0; url=http://www.tarena.com/awstats/awstats.pl? config=www.tarena.com">
</head>
<body>
</body>
</html>
验证:
http://www.tarena.com/awstats.html
Httpd进程规模控制
Prefork方式:
--预创建、非线程模式
Worker方式:
--多线程、多处理模式
试验六:
查看默认HTTP使用进程管理方式
更改默认进程管理方式为worker模式
[root@localhost ~]# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
[root@localhost ~]# cd /usr/sbin/
[root@localhost sbin]# mv httpd httpd.prefork
[root@localhost sbin]# mv httpd.worker httpd
[root@localhost sbin]# service httpd restart
[root@localhost sbin]# httpd -l
Compiled in modules:
core.c
worker.c
http_core.c
mod_so.c
试验八:基于IP的虚拟主机
www.tarena.com192.168.10.10
www.baidu.com192.168.10.11
www.google.com192.168.10.12
前提条件
设置IP
[root@localhost ~]# cd
[root@localhost network-scripts]# cat ifcfg-eth0:0
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0:0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.10.11
NETMASK=255.255.255.0
[root@localhost network-scripts]# cat ifcfg-eth0:1
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0:1
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.10.12
NETMASK=255.255.255.0
[root@localhost network-scripts]# service network restart
修改hosts文件
192.168.10.10www.tarena.comwww
192.168.10.11www.baidu.comwww
192.168.10.12www.google.comwww
1、建立网站存放路径
过程略...见基于域名的虚拟主机配置
2、修改主配置文件
[root@localhost ~]# cat /etc/httpd/conf.d/virt.conf
<VirtualHost 192.168.10.10:80>
DocumentRoot /var/www/html
ServerName www.tarena.com
ErrorLog logs/tarena.com-error_l
CustomLog logs/tarena.com-access_log common
</VirtualHost>
<VirtualHost 192.168.10.11:80>
DocumentRoot /data/web/baidu
ServerName www.baidu.com
ErrorLog logs/baidu.com-error_log
CustomLog logs/baidu.com-access_log common
</VirtualHost>
<VirtualHost 192.168.10.12:80>
DocumentRoot /data/web/google
ServerName www.google.com
ErrorLog logs/google.com-error_log
CustomLog logs/google.com-access_log common
</VirtualHost>
3、启动服务
[root@localhost ~]# service httpd restart
讲师周华飞(EC888FEB8315对话) 14:27:04
4,客户端测试
http://www.tarena.com
http://www.baidu.com
http://www.google.com
实验九:构建基于TCP端口的虚拟Web主机
Listen 81
Listen 82
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.tarena.com
ErrorLog logs/tarena.com-error_log
CustomLog logs/tarena.com-access_log common
</VirtualHost>
<VirtualHost *:81>
DocumentRoot /data/web/baidu
ServerName www.baidu.com
ErrorLog logs/baidu.com-error_log
CustomLog logs/baidu.com-access_log common
</VirtualHost>
<VirtualHost *:82>
DocumentRoot /data/web/google
ServerName www.google.com
ErrorLog logs/google.com-error_log
CustomLog logs/google.com-access_log common
</VirtualHost>
验证:
http://www.google.com:82
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。