lamp服务器个人理解

来源:互联网 发布:java编程思想4 pdf 编辑:程序博客网 时间:2024/06/11 14:19

网络请求、响应请求原理

1请求

浏览器—>url—>OSI包装数据(tcp握手)—>局域网—>广域网

2、响应请求

ip—>DNS>代理服务器—>广域网—>SELinux权限—>iptables>局域网—>网卡(mac地址—>内核(因为硬件只有内核能调用)—>apache(用户进程)—>cgi—>FastCGIphp-fpm)—>php>mysql

 

OSI七层协议

1、简化为:数据层>传输层tcp协议)—>物理层(数据10转化为比特流,即电流)

2、传输层tcp握手(三次握手四次断开)

a) 握手:Client请求连接,Server确定,Client连接

b) 断开:Client请求断开,Server断开接收Server断开发送,Client断开

 

cpu

1、cpu分为单核、双核、四核,运算机制把每一核模仿成两个。单核双核,双核四核,

每一核运算一个线程。

2cpu环分四环,0123,系统内核调用在0 Ring(开关机,进程线程调用管理),用户进程在3 Ring

 

Linux操作系统内核

1、内核调用一些特有指令(开关机,进程调用)

2、操作硬件

 

Apache

1、cgi识别文件(开发语言,例如javanetphp

2、Apache根据用户请求调用php分三种

aphp作为Apache的内置模块

b)通过cgi方式把请求分配给php,这种方式的php调用为单进程,一个请求为一个线

c)通过cgiFastCGI结合

 

 

 

FastCGIphp-fpm

1、分析apache请求,一个请求一个php进程

2、php-fpm管理每个进程

 

php分为三个模块

1、php内核,接受apache过来的请求,分析代码,转成opcode(类似二进制)

2、zend引擎,运行opcode,返回html给内核,内核返回给apache

3、拓展模块,例如mysql

 

mysql

1、mysql是客户端,mysqld是服务器端,启用时用mysqld start

2、mysql增删改

a) 内核先写入内存缓存,断电会丢失

b) 缓存同步到mysql缓存,断电会丢失(mysql缓存是为了并发同样请求)

c) mysql缓存同步到二进制日志

d) 二进制日志写入数据库

3、备份可以分表单独备份

0 0
原创粉丝点击