DNS: 域名解析,BIND: Berkeley Internet Name Domain
SSL/TLS: http-->https, OpenSSL, CA, Digital Certificate, PKI
HTTP: HTTP协议,Apache, LAMP, Nginx(Engine X), LNMP(LEMP), MySQL, PHP, varnish
CDN: DNS(View), varnish
File Server: NFS、SMB/CIFS、FTP
Netfilter: iptables (filter, nat, mangle, raw)、tcp wrapper
NSSwitch: framework, platform, PAM:
SMTP/POP3/IMAP4: Mail Server
SELinux: Security Enhanced Linux
C2-->SELinux-->B1
MySQL:
DNS: Domain Name Service
域名:www.magedu.com(主机名,FQDN:Full Qualified Domain Name, 完全限定域名)
DNS:名称解析,Name Resolving 名称转换(背后有查询过程,数据库)
FQDN<-->IP
172.16.0.1 www.magedu.com.
172.16.0.2 mail.magedu.com.
nsswitch:
hosts: files dns
file: /etc/hosts
dns: DNS
stub resolver: 名称解析器
ping www.magedu.com
hosts:
IPADDR FQDN Ailases
172.16.0.1 www.magedu.com www
A --> D
hosts
1、周期性任务
2、Server, Server
1KW
3、分布式数据库
IANA: IP, FQDN
ftp: hosts
ICANN:
TLD:
组织域:.com, .org, .net, .cc
国家域: .cn, .tw, .hk, .iq, .ir, .jp
反向域: IP-->FQDN
反向:IP-->FQDN
正向:FQDN-->IP
IP-->FQDN:
FQDN-->IP:
www.magedu.com. IP1
查询:
递归:只发出一次请求
迭代:发出多次请求
解析:
正向:FQDN-->IP
反向:IP-->FQDN
两段式:递归,迭代
DNS:分布式数据库
上级仅知道其直接下级;
下级只知道根的位置;
DNS服务器:
接受本地客户查询请求(递归)
外部客户端请求:请求权威答案
肯定答案:TTL
否定答案:TTL
外部客户端请求:非权威答案
DNS服务器类型
主DNS服务器: 数据修改
辅助DNS服务器:请求数据同步
serial number
refresh
retry
expire
nagative answer TTL
缓存DNS服务器
转发器
数据库中的,每一个条目称作一个资源记录(Resource Record, RR)
资源记录的格式:
TTL 600;
NAME [TTL] IN RRT VALUE
www.magedu.com. IN A 1.1.1.1
1.1.1.1 IN PTR www.magedu.com.
资源记录类型:
SOA(Start Of Authority):
ZONE NAME TTL IN SOA FQDN ADMINISTRATOR_MAILBOX (
serial number
refresh
retry
expire
na ttl )
时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒
邮箱格式:admin@magedu.com -写为-> admin.magedu.com
magedu.com. 600 IN SOA ns1.magedu.com. admin.magedu.com. (
2013040101
1H
5M
1W
1D )
NS(Name Server): ZONE NAME --> FQDN
magedu.com. 600 IN NS ns1.magedu.com.
magedu.com. 600 IN NS ns2.magedu.com.
ns1.magedu.com. 600 IN A 1.1.1.2
ns2.magedu.com. 600 IN A 1.1.1.5
MX(Mail eXchanger): ZONE NAME --> FQDN
ZONE NAME TTL IN MX pri VALUE
优先级:0-99,数字越小级别越高
magedu.com. 600 IN MX 10 mail.magedu.com.
mail.magedu.com. 600 IN A 1.1.1.3
A(address): FQDN-->IPv4
AAAA:FQDN-->IPv6
PTR(pointer):IP-->FQDN
CNAME(Canonical NAME): FQDN-->FQDN
www2.magedu.com. IN CNAME www.magedu.com.
TXT
CHAOS
SRV
域:Domain
区域:Zone
.com
magedu.com. IN NS ns.magedu.com.
ns.magedu.com. IN A 192.168.0.10
magedu.com. 192.168.0.0/24
www 192.168.0.1
mail 192.168.0.2, MX
建立两个区域文件:
正向区域文件
magedu.com. IN SOA
www.maged.com. IN A 192.168.0.1
简写为:
www IN A 192.168.0.1
反向区域文件:
0.168.192.in-addr.arpa. IN SOA
1.0.168.192.in-addr.arpa. IN PTR www.magedu.com.
1 IN PTR www.magedu.com.
区域传送的类型:
完全区域传送: axfr
增量区域传送:ixfr
区域类型:
主区域:master
从区域:slave
提示区域:hint
转发区域:forward
.com.
magedu.com.
DNS资源记录类型及意义:
SOA:起始授权记录
NS:名称服务器
MX:邮件交换器
CNAME:别名记录
A:FQDN-->IPv4
AAAA: FQDN-->IPv6
PTR:IP-->FQDN
递归:请求一次
迭代:请求多次,参考答案
DNS服务器类型:
主
辅助
缓存
转发器
ZONE DOMAIN
SOA:
mageedu.com 172.16.100.0/24
ns 172.16.100.1
www 172.16.100.1, 172.16.100.3
mail 172.16.100.2
ftp www
DNS:BIND
Berkeley Internet Name Domain
ISC
bind97:
/etc/named.conf
BIND进程的工作属性
区域的定义
/etc/rndc.key
rndc: Remote Name Domain Controller
密钥文件
配置信息:/etc/rndc.conf
/var/named/
区域数据文件
/etc/rc.d/init.d/named
{start|stop|restart|status|reload}
二进制程序:named
bind-chroot:
默认:named
用户:named
组:named
/var/named/chroot/
etc/named.conf
etc/rdnc.key
sbin/named
var/named/
缓存-->主-->从
named-checkconfig
name-checkzone
dig: Domain Information Gropher
DNS:
监听的协议及端口:
53/udp
53/tcp
953/tcp, rndc
SOCKET: 套接字
IP:PORT
C/S: Client/Server
172.16.100.1:53
192.168.0.13
192.168.0.12:53
172.16.100.1:53
0.0.0.0:53
区域:
zone "ZONE NAME" IN {
type {master|slave|hint|forward};
};
主区域:
file "区域数据文件";
从区域:
file "区域数据文件";
masters { master1_ip; };
临时性地关闭SELinux:
# getenforce
Enforcing
# setenforce 0
# setenforce 1
永久关闭:
# vim /etc/selinux/config
dig -t RT NAME @IP
dig -t NS mageedu.com
dig -x IP:
根据IP查找FQDN
host -t RT NAME: 查询名称的解析结果
nslookup: 交互式
nslookup>
server IP
set q=RT
NAME
100.16.172.in-addr.arpa
BIND, named, DNS
named: named.named
resoving:
数据文件
IP-->FQDN
ZONE NAME --> NS, MX
查询:stub resolver
递归
缓存功能:
DNS RT
$TTL 宏
$ORIGIN mageedu.com.
$GENERATE
NAME [TTL] IN RT VALUE
SOA:
@ IN SOA MASTER_NS_SERVER_FQDN ADMIN_MAILBOX (
)
NS:
@ IN NS NS_SERVER_FQDN
MX:
@ IN MX pri MX_SERVER_FQDN
A
AAAA
PTR
CNAME
Alias IN CNAME FQDN
named: /usr/sbin/named
SOCKET IP:PORT
tcp
udp
被打开
/etc/named.conf
/etc/rc.d/init.d/functions
/etc/rc.d/init.d/named /etc/sysconfig/named
service named start
bind
named, named
bind97
dig:
aa: Authority Answer
泛域解析:
*.mageedu.com. IN A
axfr: 完全区域传送
ixfr:增量区域传送
区域:
主、从
rndc:
正向区域:
SUB_ZONE_NAME IN NS NSSERVER_SUB_ZONE_NAME
NSSERVER_SUB_ZONE_NAME IN A IP
.com
mageedu.com. IN NS ns1.mageedu.com.
IN NS ns2.mageedu.com.
ns1.mageedu.com. IN A 172.16.100.1
ns2.magedu.com. IN A 172.16.100.2
dig -t A www.baidu.com @172.16.100.1
.
.com
.com
magedu.com.
mageedu.com.
fin.mageedu.com. IN NS ns1.fin.mageedu.com.
fin.mageedu.com. IN NS ns2.fin.mageedu.com.
ns1.fin.mageedu.com. IN A 172.16.100.8
ns2.fin.mageedu.com. IN A 172.16.100.9
market.mageedu.com. IN NS ns1.market.mageedu.com.
ns1.market.mageedu.com. IN A 172.16.100.108
forward {only|first}
forwarders {};
zone "ZONE_NAME" IN {
type forward;
};
allow-recursion {};
allow-query {};
allow-transfer {};
axfr
ixfr
allow-query { 172.16.0.0/16; 127.0.0.0/8; 10.0.0.0/8; }
acl ACL_NAME {
172.16.0.0/16;
127.0.0.0/8;
};
acl innet {
172.16.0.0/16;
127.0.0.0/8;
};
allow-query { innet; };
none;
any;
view VIEW_NAME {
};
view VIEW_NAME {
};
所有的区域都必须定义在视图中
zone "." IN
catagory: 日志源
查询
区域传送
可以通过catagory自定义日志来源
channel: 日志保存位置
syslog
file: 自定义保存日志信息的文件
logging {
};
queryperf : 压力测试
DHCP: Dynamic Host Configuration Protocol <-- bootp
TCP/IP
IPADDR
NETMASK
GATEWAY
DNS
Client--> DHCPDISCOVER
DHCPOFFER <-- Server
Client--> DCHPREQUEST
DCHPACK <-- Server
Client--> DHCPREQUEST
DHCPACK <-- Server
UDP:
67/udp
68/udp
HTTP: HyperText Transfer Protocol: 超文本传输协议
超链接:
Web:
http/0.9: 仅纯文本(超链接), ASCII,
HTML:HyperText Mark Language
<h2>Title</h2>
Browser: 客户端
1.1.1.1: web, a.html
2.2.2.2: web, a.html
URI: Uniform Resource Indentifier, 全局范围内
统一:路径格式上的统一
URL:Uniform Resource Locator
protocol://HOST:port/path/to/file
http://www.magedu.com/download/linux.tar.gz
web资源:http://www.magedu.com/logo.gif
多个资源很可能被整合为一个html文档
web对象:
HTTP方法:
GET
http/1.0: PUT, POST, DELETE, HEAD
MIME: Multipurpose Internet Mail Extension, 多用途互联网邮件扩展
SMTP: Simple Mail Transmission Protocol, 纯文本
MIME: 将非文本数据在传输前重新编码为文本格式,接收方能够用相反的方式将其重新还原为原来的格式,还能够调用相应的程序来打开此文件
Base64
协议首部:
image/jpeg
动态效果
Java, Applet, JRE
动态网页:服务器端存储的文档非HTML格式,而是编程语言开发的脚本,脚本接受参数之后在服务器运行一次,运行完成之后会生成HTML格式的文档,把生成的文档发给客户端;
web: index.php
web --> procotol --> php (运行index.php)
http
index.html:
引用N个web对象:URL
动态网页:包含静态内容和动态内容
动态内容部分才需运行
缓存:
URL:http://www.magedu.com/2.html
HTTP报文:请求报文,响应报文
请求报文语法:
<method> <request-URL> <version>
<headers>
<entity-body>
响应报文语法:
<version> <status> <reason-phrase>
<headers>
<entity-body>
状态代码:
1xx: 纯信息
2xx: “成功”类的信息 (200, 201, 202)
3xx:重定向类的信息 (301, 302, 304)
4xx: 客户端错误类的信息 (404)
5xx:服务器端错误类的信息
请求报文:
GET / HTTP/1.1
Host: www.magedu.com
Connection: keep-alive
响应报文:
HTTP/1.1 200 OK
X-Powered-By: PHP/5.2.17
Vary: Accept-Encoding,Cookie,User-Agent
Cache-Control: max-age=3, must-revalidate
Content-Encoding: gzip
Content-Length: 6931
上面两个报文的第一行通常称作报文“起始行(start line)”;后面的标签格式的内容称作首部域(Header field),每个首部域都由名称(name)和值(value)组成,中间用逗号分隔。另外,响应报文通常还有一个称作Body的信息主体,即响应给客户端的内容。
Web服务器的主要操作
1、 建立连接——接受或拒绝客户端连接请求;
2、 接收请求——通过网络读取HTTP请求报文;
3、 处理请求——解析请求报文并做出相应的动作;
4、 访问资源——访问请求报文中相关的资源;
5、 构建响应——使用正确的首部生成HTTP响应报文;
6、 发送响应——向客户端发送生成的响应报文;
7、 记录日志——当已经完成的HTTP事务记录进日志文件;
5s: 10 image, 3 css, 5html
18资源
http, tcp: 三次握手,四次断开
http/1.1:
增强了缓存的功能
长连接
www.netcraft.com
Web服务器处理并发连接请求的架构方式
1、单线程web服务器(Single-threaded web servers)
此种架构方式中,web服务器一次处理一个请求,结束后读取并处理下一个请求。在某请求处理过程中,其它所有的请求将被忽略,因此,在并发请求较多的场景中将会出现严重的必能问题。
2、多进程/多线程web服务器
此种架构方式中,web服务器生成多个进程或线程并行处理多个用户请求,进程或线程可以按需或事先生成。有的web服务器应用程序为每个用户请求生成一个单独的进程或线程来进行响应,不过,一旦并发请求数量达到成千上万时,多个同时运行的进程或线程将会消耗大量的系统资源。
3、I/O多路复用web服务器
为了能够支持更多的并发用户请求,越来越多的web服务器正在采用多种复用的架构——同步监控所有的连接请求的活动状态,当一个连接的状态发生改变时(如数据准备完毕或发生某错误),将为其执行一系列特定操作;在操作完成后,此连接将重新变回暂时的稳定态并返回至打开的连接列表中,直到下一次的状态改变。由于其多路复用的特性,进程或线程不会被空闲的连接所占用,因而可以提供高效的工作模式。
4、多路复用多线程web服务器
将多进程和多路复用的功能结合起来形成的web服务器架构,其避免了让一个进程服务于过多的用户请求,并能充分利用多CPU主机所提供的计算能力。
代理
Web代理服务器工作于web客户端和web服务器之间,它负责接收来自于客户端的http请求,并将其转发至对应的服务;而后接收来自于服务端的响应,并将响应报文回送至客户端。
apache: 17,
NCSA, httpd
A Patchy Server = apache
FSF: GNU, GPL
ASF: Apache Software Foundation
web: httpd
Tomcat
Hadoop
www.apache.org
web: http://httpd.apache.org
httpd:
Web Server, Open Source
2.2, 2.4, 2.0, 1.3
httpd:
事先创建进程
按需维持适当的进程
模块块设计,核心比较小,各种功能都模块添加(包括php)
支持运行配置,支持单独编译模块
支持多种方式的虚拟主机配置
Socket IP:Port
虚拟主机:
基于IP的虚拟主机;
基于端口的虚拟主机;
基于域名的虚拟主机;
protocol://HOST:PORT/path/to/source
Method URL version
header
body
GET /download/linux.tar.bz2 HTTP/1.0
Host: www.magedu.com
支持https协议 (mod_ssl)
支持用户认证
支持基于IP或主机名的ACL
支持每目录的访问控制
支持URL重写,/image/a.jpeg, /bbs/images/abc.jpeg
RedHat(httpd):
rpm包:
源码编译
httpd: SELinux(事先让其处于permssive, disabled)
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
cgi: Common Gateway Interface
Client --> httpd (index.cgi) --> Spawn Process (index.cgi) --> httpd --> Client
perl, python, java, (Servlet, JSP), php
fastcgi:
程序:指令和数据
数据,数据库服务
httpd:
directive value
指令不区分字符大小写
value则根据需要有可能要区分
MPM: Multi Path Modules
mpm_winnt
prefork (一个请求用一个进程响应)
worker (一个请求用一个线程响应, (启动多个进程,每个进程生成多个线程))
event (一个进程处理多个请求)
URL路径跟本地文件系统路径不是一码事儿, URL是相对于DocumentRoot的路径而言的。
Options
None: 不支持任何选项
Indexes: 允许索引目录
FollowSynLinks: 允许访问符号链接指向的原文件
Includes: 允许执行服务端包含(SSI)
ExecCGI: 允许运行CGI脚本
All: 支持所有选项
Order:用于定义基于主机的访问功能的,IP,网络地址或主机定义访问控制机制
Order allow,deny
allow from
deny from
192.168.0.0/24
地址的表示方式:
IP
network/netmask
HOSTNAME: www.a.com
DOMAINNAME: magedu.com
Partial IP: 172.16, 172.16.0.0/16
Order deny,allow
Deny from 192.168.0.0/24
192.168.0.1, 172.16.100.177
elinks http://172.16.100.1
-dump
-source
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user marion
Group File Syntax:
GroupName: rbowen dpitts sungo rshersey
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>
tom
http://172.16.100.1/~tom/
PV: Page View,每天的页面访问量
UV: User View, 每天的独立IP访问量
/web/html
/www/forum bbs
http://172.16.100.1/bbs/images/logo.jpeg
定义网站文档目录
访问选项:options
基于主机的访问控制
基于用户或组的访问控制
用户个人站点
错误日志
日志格式
访问日志 PV UV
路径别名
CGI
虚拟主机
Apache的指令:
Listen [IP:]PORT
MPM: MultiPath Modules
prefork: 一个请求用一个进程处理,稳定性好、大并发场景下消耗资源较多;
worker:每个请求用一个线程处理(启动一定数量的进程,每个进程生成一定数量的线程)
event:每个进程处理多个请求,基于事件来实现 (apache 2.2测试)
mpm_winnt
httpd, httpd.worker, httpd.event
/etc/sysconfig/httpd
prework
<IfModule prefork.c>
StartServers
MinSpareServers
MaxSpareServers
MaxClients
ServerLimit
MaxRequestsPerChild
</IfModule>
ErrorLog
LogLevel
LogFormat
combined
common
CustomLog
路径别名:
Alias /URL "local_path"
User
Group
CGI: Common Gateway Interface, 通用网关接口,协议
网页内容:动态内容,静态内容
静态内容:
.jpeg
.gif
.png
.html
.css
动态内容:
编程语言写好程序-->执行一次,生成处理结果,经过html格式化后的文本
echo "<h1>Hellow world</h1>"