标签:
HTTPD:
事先创建进程
按需维持适当的进程
模块块设计,核心比较小,各种功能都模块添加(包括php)
支持运行配置,支持单独编译模块
支持多种方式的虚拟主机配置
Socket IP:Port
虚拟主机:
基于IP的虚拟主机
基于端口的虚拟主机
基于域名的虚拟主机(实际中最常见的方式)
那么虚拟机主机是如何根据域名来区别不同的访问内容的呢?
在URL和HTTP的请求报文中,报文首部中有一个Host字段,通过此字段来区别不同的访问内容
URL: protocol://HOST:PORT/path/to/source
HTTP请求报文语法
请求报文语法:
<method> <request-URL> <version>
资源获取方法 请求的资源是什么 对应请求资源协议的版本号
<headers>
http协议首部
<entity-body>
报文主体
例:
GET /download/linux.tar.bz2 HTTP/1.0
Host: www.qq.com
支持https协议 (mod_ssl)
支持用户认证
支持基于IP或主机名的ACL
支持每目录的访问控制
支持URL重写,/image/a.jpeg, /bbs/images/abc.jpeg
httpd:
/usr/sbin/httpd(默认MPM: prefork)
httpd: root, root (master process)
httpd: apche, apache (worker process)
/etc/rc.d/init.d/httpd
Port: (80/tcp), (ssl: 443/tcp)
/etc/httpd: 工作根目录,相当于程序安装目录
/etc/httpd/conf: 配置文件目录
主配置文件:httpd.conf
/etc/httpd/conf.d/*.conf 子配置文件,也是主配置文件的一部分
/etc/httpd/modules: 模块目录
/etc/httpd/logs --> /var/log/httpd: 日志目录
日志文件有两类:访问日志access_log,错误日志:err_log
/var/www/
html 静态页面
cgi-bin 动态页面
httpd:
directive value
指令不区分字符大小写
value则根据需要有可能要区分
MPM: Multi Path Modules
mpm_winnt
prefork (一个请求用一个进程响应)
worker (一个请求用一个线程响应, (启动多个进程,每个进程生成多个线程))
event (一个进程处理多个请求)
URL路径跟本地文件系统路径不是一码事儿, URL是相对于DocumentRoot的路径而言的。
Options
None: 不支持任何选项
Indexes: 允许索引目录
FollowSynLinks: 允许访问符号链接指向的原文件
SymLinksifOwnerMatch:如果属主匹配的话,允许访问符号链接指向的原文件
Includes: 允许执行服务端包含(SSI)
ExecCGI: 允许运行CGI脚本
MultiViews:多功能视图,能够根据客户端来源的语言和文字来判定该显示什么页面
All: 支持所有选项
AllowOverride:忽略Order关于访问控制的配置而采用另外的方式
AllowOverride AuthConfig
AuthType Basic 认证类型
AuthName "Restricted Files" 名字
AuthUserFile /usr/local/apache/passwd/passwords 认证用户时使用的文件
Require user marion 允许哪个/哪些用户可以登录
AllowOverride AuthConfig
AuthType Basic
AuthName "By Invitation Only"
# Optional line:
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/passwords
AuthGroupFile /usr/local/apache/passwd/groups 认证组时使用的文件
Require group GroupName 允许哪个/哪些组可以登录
Require valid-user 在用户文件中的用户都可以访问
<Directory /www/docs/private>
AuthName "Private"
AuthType Basic
AuthBasicProvider dbm
AuthDBMUserFile /www/passwords/passwd.dbm
Require valid-user
</Directory>
创建认证用户文件时使用htpasswd命令:
htpasswd -c -m /etc/httpd/conf/htpasswd hadoop
文件路径 用户
-c 第一次创建此文件时才可以使用此参数,否则将会把原来的文件覆盖掉
-m 表示用户的密码进行md5加密
-D 删除某个用户
组文件直接编辑,语法为:
GroupName: rbowen dpitts sungo rshersey
组名:用户名1 用户名2
Order:用于定义基于主机的访问控制功能的,IP,网络地址或主机定义访问控制机制
Order allow,deny
allow from **
deny from **
注:Order之后allow和deny的先后顺序不同是有区别的,在后面的表示在没有明确规定是否能够访问时采用的默认动作
地址的表示方式:
IP
network/netmask
HOSTNAME: www.a.com
DOMAINNAME: a.com
Partial IP: 172.16(等价于172.16.0.0/16)
例:
Order deny,allow
Deny from 192.168.0.0/24 (仅拒绝192.168.0.0/24网段的主机)
elinks:纯文本的浏览器
elinks http://172.16.100.1
-dump 把网页内容显示出来后立即退出,不再进入交互模式
-source 显示网页的源代码
PV: Page View,每天的页面访问量
UV: User View, 每天的独立IP访问量
标签:
原文地址:http://www.cnblogs.com/xautlmx/p/4393000.html