Web Service

传输层:提供进程地址

Port number

tcp:传输控制协议,面向连接,通信前需建立虚拟链路,结束后拆除;0-65535

udp:用户数据报协议,无连接;0-65535

IANA

0-1023:众所周知,永久分配给固定应用使用;22/tcp(ssh)、80/tcp(http)、443/tcp(https)

1024-41951:注册端口,分配给程序员注册为某服务使用;11211/udp、tcp(memcached)、3306/tcp(mysql)

41952+:客户端程序随机使用的端口;动态端口、私有端口;其范围定义:/proc/sys/net/ipv4/ip_local_port_range

Socket:IPC的一种实现,允许位于不同主机(甚至同一主机)上的不同进程之间进行通信;数据交换;Socket API

SOCK_STREAM:tcp套接字

SOCK_DGRAM:udp套接字

SOCK_RAM:裸套接字

TCP协议的特性

建立连接,三次握手

将数据打包成段,校验和(CRC-32)

确认、重传、超时

排序、逻辑序号

流量控制,滑动窗口算法

拥塞控制:慢启动,拥塞避免算法

Socket Domain(根据其所使用的地址)

AF_INET:Address Family,IPv4

AF_INET6:IPv6

AF_UNIX:同一主机上不同进程通信时使用

每类套接字都至少提供了两种Socket,流、数据报

流:可靠地传递,面向连接,无边界

数据报:不可靠地传递,有边界

套接字相关的系统调用

socket():创建一个套接字

bind():绑定

listen():监听

accept():接收请求

connect():请求连接建立

write():发送数据

read():接收数据

send()、recv()、sendto()、recvfrom()

http:hyper text transfer protocol

html:编程语言,超文本标记语言

CSS:Cascading Style Sheet

js:javascript

MIME:Multipurpose Internet Mail Extension

工作机制

http请求

http响应

Web资源,web resource

静态文件:jpg、gif、html、txt、js、css、mp3、avi

动态文件:php、jsp

媒体

媒体类型(MIME类型):major/minor

text/html

text/plain

image/jpeg

image/gif

URI:Uniform Resource Identifier

URL:Uniform Resource Locator,用于描述某服务器上某特定资源的位置

Scheme://Server:Port/path/to/resource

URN:Uniform Resource Naming

http协议版本

HTTP/0.9:原型版本,功能简陋

HTTP/1.0:第一个广泛使用的版本,支持MIME

HTTP/1.1:增强了缓存功能

HTTP/2.0:

一次完整的http请求过程

  1. 建立或处理连接,接收请求或拒绝请求
  2. 接收请求

    接收来自于网络的请求报文中对某资源的一次请求的过程

    并发访问响应模型(Web I/O)

    单进程I/O结构:只启动一个进程处理用户请求,且一次只处理一个,多个请求串行响应

    多进程I/O结构:并行启动多个进程,每个进程响应一个请求

    复用I/O结构:一个进程响应多个请求

    多线程模型:一个进程生成多个线程,每个线程响应一个用户请求

    事件驱动:event-driven

    复用的多进程I/O结构:启动多个进程,每个进程响应多个请求

  3. 处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息

    元数据:请求数据首部

    <method><URL><VERSION>

    Host:请求的主机名称

    Connection

  4. 访问资源:获取请求报文中请求的资源

    web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源,这些资源放置于本地文件系统某路径下,称为DocRoot

    web服务器资源路径映射方式

    docroot

    alias

    虚拟主机docroot

    用户家目录docroot

  5. 构建响应报文

    资源的MIME类型

    显式分类

    魔法分类

    协商分类

    URL重定向

    web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径

  6. 发送响应报文
  7. 记录日志

http服务器程序

httpd(apache)

nginx

lighttpd

应用程序服务器

IIS

tomcat,jetty,jboss,resin

webshpere,weblogic,oc4j

httpd的安装配置和使用

httpd:apache

httpd的特性

高度模块化,core+modules

DSO:Dynamic Shared Object

MPM:Multipath Processing Modules

prefork:多进程模型,每个进程响应一个请求

一个主进程负责生成多个子进程,子进程称为工作进程,主进程负责监听套接字,每个子进程处理一个用户请求,即便没有用户请求,也会预先生成多个空闲进程(≤1024),随时等待请求到达

worker:多线程模型(多进程生成,一个进程生成多个线程),一个线程响应一个请求

event:事件驱动模型,一个线程响应多个请求

安装方式

rpm

编译安装

CentOS6

程序环境

配置文件

/etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf

服务脚本

/etc/rc.d/init.d/httpd

配置文件:/etc/sysconfig/httpd

主程序文件

/usr/sbin/httpd

/usr/sbin/httpd.event

/usr/sbin/httpd.worker

日志文件

/var/log/httpd

access_log:访问日志

error_log:错误日志

站点文档目录

/var/www/html

模块文件路径

/usr/lib64/httpd/modules

配置文件的组成

Section 1:Global Environment

Section 2:”Main” server configuration

Section 3:Virtual Hosts

配置格式:directive value

directive:不区分大小写

value:为路径时,取决于文件系统

常用配置

  1. 修改监听的IP和端口

    Listen [IP:]PORT

    省略IP表示监听本机的所有IP,Listen可重复出现多次

  2. 持久连接

    Persistent Connection:连接建立,每个资源获取完成后不会断开连接,而是继续等待其他的请求完成

    如何断开?

    数量限制:100

    时间限制:可配置

    副作用:对并发访问量较大的服务器,持久连接功能会使有些请求得不到响应

    折中:使用较短的持久连接时间

    httpd-2.4支持ms级持久时间

    非持久连接

    KeepAlive On|Off

    MaxKeepAliveRequests n

    KeepAliveTimeout n

    测试:telnet HOST PORT

    GET /URL HTTP/1.1

    Host:HOSTNAME or IP

  3. MPM,Multipath Process Modules,多道处理模块

    prefork、worker、event

    httpd-2.2不支持同时编译多个模块,所以只能编译时选定一个,rpm安装的包提供三个二进制程序文件,分别用于实现不同MPM机制的支持

    确认方法:ps aux | grep httpd

    默认为/usr/sbin/httpd,其使用prefork

    查看模块列表

    查看静态编译的模块

    httpd -l

    查看静态编译及动态装载的模块

    httpd -M

    更换使用的httpd程序

    /etc/sysconfig/httpd

    HTTPD=

    重启服务生效

    prefork的配置

    <IfModule prefork.c>

    StartServers 8
    服务器进程启动时启动的进程数

    MinSpareServers 5
    最小空闲进程数

    MaxSpareServers 20
    最大

    ServerLimit 256
    为MaxClients指定的在其生命周期内的最大值

    MaxClients 256
    最大并发请求数

    MaxRequestsPerChild 4000
    一个服务器进程能响应的最大请求数

    </IfModule>

    worker的配置

    <IfModule worker.c>

    StartServers 4
    服务器进程启动时启动的进程数

    MaxClients 300
    服务器端最大启动的线程数

    MinSpareThreads 25
    最小空闲线程数

    MaxSpareThreads 75
    最大

    ThreadsPerChild 25

    MaxRequestsPerChild 0
    一个服务器进程能响应的最大请求数

    </IfModule>

    PV、UV

    PV:Page View

    UV:User View

    独立IP量

  4. DSO

    配置指令实现模块加载

    LoadModule <mod_name> <mod_path>

    模块路径可使用相对地址,相对于ServerRoot(/etc/httpd)而言,/etc/httpd/modules

  5. 定义”Main” server的文档页面路径

    DocumentRoot

    文档路径映射

    DocumentRoot指向的路径为URL路径的起始位置

    DocumentRoot “/var/www/html”

    test/index.html –> http://HOST:PORT/test/index.html

  6. 站点访问控制

    可基于两种类型的路径指明对哪些资源进行访问控制

    文件系统路径

    <Directory “”> </Directory>

    <File “”> </File>

    <FileMatch “正则表达式”> </FileMatch>

    URL路径

    <Location “”> </Location>

    <LocationMatch “”> </Location>

    访问控制机制

    基于来源地址

    基于用户账号密码

  7. Directory中基于来源地址实现访问控制
    1. Options

      可用值:Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews None All

      Indexes:索引

      FollowSymLinks:允许跟踪符号链接文件

    2. AllowOverride
    3. 基于来源地址的访问控制机制

      Order allow,deny
      检查次序,前为例外,后为默认机制

      Order deny,allow

      Allow from all

      Deny from all

      来源地址

      IP地址

      NetAddr

      172.16

      172.16.0.0

      172.16.0.0/16

      172.16.0.0/255.255.0.0

  8. 定义默认主页面

    DirectoryIndex index.html index.html.var

  9. 日志设定

    错误日志

    ErrorLog logs/error_log

    LogLevel warn

    debug, info, notice, warn, error, crit,
    alert, emerg.

    访问日志

    CustomLog logs/access_log combined

    LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined

    %h:客户端IP地址

    %l:Remote logname (from identd, if supplied). -表示为空

    %u:Remote user(from auth; may be bogus if return status (%s) is 401)

    %t:Time the request was received (standard english format)

    %r:First line of request,请求报文的首行信息

    %s:响应状态码

    %b:响应报文的大小,单位为byte,不包含响应报文首部

    %{Referer}i:请求报文中”referer”首部的值,当前资源的访问入口,及从哪个页面中的超链接跳转而来

    %{User-Agent}i:请求报文中”User-Agent”首部的值,及发出请求用到的应用程序

    详情:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

  10. 路径别名

    Alias /URL/ “PATH/TO/SOMEDIR/”

    Alias /bbs/ “/forum/htdocs”

    http: //www.123.com/bbs/index.html

    –> /forum/htdocs/bbs/

  11. 设定默认字符集

    AddDefaultCharset UTF-8

    GBK、GB2312、GB18030

  12. 基于用户的访问控制

    认证质询

    WWW-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户端提供账号和密码

    认证

    Authorization:客户端用户填入账号和密码后再次发送请求报文,认证通过,则服务器发送响应的资源

    认证方法

    basic:明文

    digest:消息摘要

    安全域:需要用户通过认证后才能访问的路径

    应该通过名称对其进行标识,并用于告知用户认证的原因

    用户的账号和密码存储于何处

    虚拟账号:仅用于访问某服务时用到的认证标识

    存储

    文本文件

    SQL数据库

    ldap

    nis

    basic认证

    1. 定义安全域

      <Directory “”>

      Options None

      AllowOverride None

      AuthType Basic

      AuthName “STRING”

      AuthUserFile “/PATH/TO/HTTPD_USER_PASSWD_FILE”

      Require user username1 username2 …

      </Directory>

      允许账号文件中的所有用户登录访问

      Require valid-user

    2. 提供账号和密码存储

      使用htpasswd命令进行管理

      htpasswd [options] passwordfile username

      -c:自动创建passwordfile,因此,仅应该在添加第一个用户时使用

      -m:md5加密用户密码

      -s:sha1加密用户密码

      -D:删除指定用户

    3. 实现基于组进行认证

      <Directory “”>

      Options None

      AllowOverride None

      AuthType Basic

      AuthName “STRING”

      AuthUserFile “/PATH/TO/HTTPD_USER_PASSWD_FILE”

      AuthGroupFile “/PATH/TO/HTTPD_GROUP_PASSWD_FILE”

      Require group group1 group2…

      </Directory>

      要提供用户账号文件和组文件

      组文件:每行定义一个组

      GRP_NAME:user1 user2…

  13. 虚拟主机

    三种实现方案

    基于IP

    为每个虚拟主机准备至少一个IP地址

    基于port

    为每个虚拟主机准备至少一个专用port,实践中少用

    基于hostname

    为每个虚拟主机准备至少一个专用hostname

    可混合使用三种方式中任意方式

    一般虚拟主机不要与中心主机混用,要使用虚拟主机,先禁用中心主机

    禁用中心主机:注释DocumentRoot

    每个虚拟主机都有专用配置

    <VirtualHost “IP:PORT”>

    ServerName

    DocumentRoot “”

    <Directory “”>

    </Directory>

    </VirtualHost>

    ServerAlias:虚拟主机的别名

    ErrorLog

    CustomLog

  14. 内置的status页面

    <Location /server-status>

    SetHandler server-status

    Order deny,allow

    Deny from all

    Allow from .example.com

    </Location>

http协议和httpd的配置

URL:Uniform Resource Locator

URL方案:scheme

服务器地址:ip:port

资源路径

<Scheme>://<user>:<password>@<Server>:<Port>/<path/to/resource>;<params>?<query>#<frag>

params:参数

query:查询

frag:锚定符

相对URL

绝对URL

http协议

http/0.9,http/1.0,http/1.1,http/2.0

http协议:stateless

服务器无法持续追踪访问者来源

cookie,session

http事务

请求:request

响应:response

报文语法格式

request报文

<method> <request-URL> <version>

<headers>

<entity-body>

response报文

<version> <status> <reason-phrase>

<headers>

<entity-body>

method:请求方法,标明客户端希望服务器对资源执行的动作

GET、HEAD、POST、PUT、DELETE、OPTIONS、TRACE

version

HTTP/<major>.<minor>

status

三位数字:如200、301、302、404、502;标记请求过程中发生的情况

reason-phrase

状态码所标记的状态的简要描述

headers

每个请求或响应报文可包含任意个首部,每个首部都有首部名称,后面跟一个冒号,而后跟上一个可选空格,接着是值

entity-body:请求时附加的数据或响应时附加的数据

method(方法)

GET:从服务器获取一个资源

HEAD:只从服务器获取文档的响应首部

POST:向服务器发送服务器要处理的数据

PUT:将请求的主体部分直接存储在服务器上

DELETE:请求删除服务器上指定的文档

TRACE:追踪请求到达服务器中间经过的代理服务器

OPTIONS:请求服务器返回对指定资源支持使用的请求方法

协议查看或分析工具:tcpdump、tshark、wireshark

status(状态码)

1xx:100-101,信息提示

2xx:200-206,成功类的信息

3xx:300-305,重定向

4xx:400-415,错误类信息,客户端错误

5xx:500-505,错误类信息,服务器端错误

常用状态码

200:成功响应,请求的所有数据通过响应报文的entity-body部分发送,OK

301:请求的URL指向的资源已经被删除,但在响应报文中通过首部Location指明了资源现在所处的新位置;Moved Permanently

302:与301相似,但在响应报文中指定的为资源现在所处的临时新位置;Found

304:客户端发出了条件式请求,但服务器上的资源未曾发生变化,则通过响应此响应状态码通知客户端;Not Modified

401:需要输入账号和密码才能访问资源,Unauthorized

403:请求被禁止;Forbidden

404:服务器无法找到客户端请求的资源;Not Found

500:服务器内部错误;Internal Server Error

502:代理服务器从后端服务器收到一条伪响应;Bad Gateway

headers

格式

Name: Value

首部的分类

通用首部

Date:报文的创建时间

Connection:连接状态,keepalive、close

Via:显示报文经过的中间节点

Cache-Control:控制缓存

Pragma

请求首部

Accept:通知服务器自己能够接受的媒体类型

Accept-Charset:接受的字符集

Accept-Encoding:接受的编码格式

Accept-Language:接受的语言

Client-IP

Host:请求的服务器名称和端口号

Referer:包含当前正在请求的资源的上一级资源

User-Agent:客户端代理,浏览器类型

条件式请求首部

Expect

If-Modified-Since:自从指定的时间后,请求的资源是否发生过修改

If-UnModified-Since

If-None-Match:本地缓存中存储的文档的Etag是否与服务器文档的Etag不匹配

If-Match

安全请求首部

Authorization:向服务器发送认证信息,如账号密码

Cookie:客户端向服务器发送cookie

Cookie2

代理请求首部

Proxy-Authorization:向代理服务器认证

响应首部

信息性

Age:响应持续时长

Server:服务器程序软件名称和版本

协商首部:某资源有多种表示方法时使用

Accept-Ranges:服务器可接受的请求范围类型

Vary:服务器查看的其他首部列表

安全响应首部

Set-Cookie:向客户端设置Cookie

Set-Cookie2

WWW-Authenticate:来自服务器对客户端的质询认证表单

实体首部

Allow:列出对此实体可使用的请求方法

Location:告知客户端真正的实体位于何处

Content-Encoding

Content-Language

Content-Length:实体的长度

Content-Location:实体真正所处位置

Content-Type:实体的对象类型

缓存相关

Etag:实体的扩展标签

Expires:实体的过期时间

Last-Modified:最后一次修改的时间

扩展首部

httpd-2.2

curl命令

curl是基于URL语法在命令行方式下工作的文件传输工具,支持FTP、SFTP、HTTP、HTTPS、GOPHER、TELNET、DICT、FILE、LDAP等协议,支持HTTPS认证,支持HTTP的POST、PUT等方法、FTP上传

kerberos认证,HTTP上传,代理服务器,Cookie,用户名/密码认证

上传下载断点续传,http代理服务器管道,IPv6

socks5代理服务器,通过http代理服务器上传文件到FTP服务器等

curl [option] URL

-A/–user-agent:设置用户代理发送给服务器

–basic:使用http基本认证

-e/–referer URL:来源地址

–cacert FILE:CA证书

–compressed:要求返回的压缩格式

-H/–header <line>:自定义头部信息传递给服务器

-I/–head:只显示响应报文首部信息

–limit-rate:设置传输速度

-u/–user <user[:password]>:设置服务器的用户名和密码

-0/–http1.0:使用HTTP1.0

elinks

elinks [option] URL

-dump:不进入交互模式,而直接将URL的内容输出至标准输出

使用mod_deflate模块压缩页面优化传输速度

适用场景

节约带宽,额外消耗CPU,较老浏览器可能不支持

压缩适于压缩的资源,如文本文件

https

http over ssl = https 443/tcp

SSL会话的简化过程

  1. 客户端发送可供选择的加密方式,并向服务器请求证书
  2. 服务器端发送证书以及选定的加密方式给客户端
  3. 客户端取得证书并进行证书验证

    如果信任给其发证书的CA

    a、验证证书来源的合法性,用CA的公钥解密证书上的数字签名

    b、验证证书内容的合法性,完整性校验

    c、检查证书的有效期限

    d、检查证书是否被吊销

    e、证书拥有者的名字,与访问的目标主机要一致

  4. 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换
  5. 服务器用此密钥加密用户请求的资源,响应给客户端

    SSL会话是基于IP地址创建,所以单IP的主机上,仅可以使用一个https虚拟主机

配置httpd支持https

  1. 测试:通过私建CA发证书

    a、创建私有CA

    b、在服务器创建证书签署请求

    c、CA签证

  2. 配置httpd支持使用ssl及使用的证书

    yum install mod_ssl

    配置文件:/etc/httpd/conf.d/ssl.conf

    DocumentRoot

    ServerName

    SSLCertificateFile

    SSLCertificateKeyFile

  3. 测试基于https访问响应的主机

    openssl s_client [-connect host:port] [-cert filename] [CApath directory] [-CAfile filename]

httpd自带的工具程序

htpasswd:basic认证基于文件实现时,用到的账号密码文件生成工具

apachectl:httpd自带的服务控制脚本,支持start、stop

apxs:由httpd-devel包提供的,扩展httpd使用第三方模块的工具

rotatelogs:日志滚动工具

access.log –>

access.log,access.1.log

access.log,access.1.log,access.2.log

suexec:访问某些有特殊权限设置的资源时,临时切换至指定用户进行

ab:apache benchmark

httpd压力测试工具

ab

ab [options] URL

-n:总的请求数

-c:模拟的并发数

-k:以持久连接模式测试

ulimit -n:调整当前用户所同时打开的文件数

webbench

http_load

jmeter

loadrunner

tcpcopy

httpd-2.4

新特性

  1. MPM支持运行DSO机制,以模块形式按需加载
  2. 支持event MPM
  3. 支持异步读写
  4. 支持每模块及每个目录分别使用各自的日志级别
  5. 每请求配置:<If>
  6. 增强版的表达式分析器
  7. 支持ms级的keepalive timeout
  8. 基于FQDN的虚拟主机不再需要NameVirtualHost指令
  9. 支持用户自定义变量

新模块

mod_proxy_fcgi

mod_ratelimit

mod_remoteip

修改了一些配置机制

不再支持使用Order,Deny,Allow来做基于IP的访问控制机制

安装httpd-2.4

  1. CentOS6

    httpd依赖于apr,apr-util,[apr-icon]

    apr:apache portable runtime

    编译安装步骤

    1.4+版的apr和apr-util

    前提:安装开发环境,安装pcre-devel

    yum groupinstall “Development Tools” “Server Platform Development”

    1. apr

      ./configure –prefix=/usr/local/apr

      make && make install

    2. apr-util

      ./configure –prefix=/usr/local/apr-util –with=/usr/local/apr

      make && make install

    3. groupadd -r apache

      useradd -r -g apache apache

      ./configure –prefix=/usr/local/apache –sysconf=/etc/httpd2.4 –enable-so –enable-ssl –enable-cgi –enable-rewrite –with-zlib –with-pcre –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –enable-modules=most –enable-mpms-shared=all –with-mpm=prefork

      make && make install

    4. 启动服务

      apachectl

  2. CentOS7

    配置文件

    主配置文件:/etc/httpd/conf/httpd.conf

    模块配置文件:/etc/httpd/conf.modules.d/*.conf

    辅助配置文件:/etc/httpd/conf.d/*.conf

    mpm:以DSO机制提供,配置文件00-mpm.conf

    服务控制:systemctl {start|stop|restart|status|reload} httpd.service

    配置

    1. 切换使用MPM

      LoadModule mpm_NAME_module modules/mod_mpm_NAME.so

      NAME:prefork、event、worker

    2. 修改”Main”Server的DocumentRoot
    3. 基于IP的访问控制法则

      允许所有主机访问:Require all granted

      拒绝所有主机访问:Require all deny

      控制特定IP访问

      Require ip IPADDR:授权指定来源地址的主机访问

      Require not ip IPADDR:拒绝指定来源地址的主机访问

      IPADDR

      IP:192.168.100.100

      Net/Mask:192.168.100.0/255.255.255.0

      Net/Length:192.168.100.0/24

      Net:192.168.100

      控制特定主机访问

      Require host HOSTNAME

      Require not host HOSTNAME

      HOSTNAME

      FQDN:特定主机

      DOMAIN:指定域内的所有主机

      <RequireAll>

      Require all granted

      Require not ip IPADDR

      </RequireAll>

    4. 虚拟主机

      基于IP、Port和FQDN都支持

      基于FQDN的不再需要NameVirtualHost指令

    5. ssl

      启用模块:LoadModule ssl_module modules/mod_ssl.so

    6. 服务脚本

      /etc/rc.d/init.d/httpd

      本文摘自http://www.178linux.com/100298

有待验证!

运维架构之httpd的更多相关文章

  1. 运维架构服务监控Open-Falcon

    一. 介绍 监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题.监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择.当公司刚 ...

  2. linux运维架构师职业规划

    1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...

  3. 转-4年!我对OpenStack运维架构的总结

    4年!我对OpenStack运维架构的总结 原创: 徐超 云技术之家 今天 前言 应“云技术社区”北极熊之邀,写点东西.思来想去云计算范畴实在广泛,自然就聊点最近话题异常火热,让广大云计算从业者爱之深 ...

  4. 对OpenStack运维架构的总结(转)

    这里,仅从技术角度出发,谈谈OpenStack云平台在部署.架构和运维实施等方面的感想. 缘起,在2014年大二首次接触到OpenStack,当时国内外资料远没有当前这么丰富,为安装一个OpenSta ...

  5. 5年从DBA到运维架构总监 — 做对了什么

    本文来自宝宝树运维总监刘秋岐的分享.随着MySQL的不断成熟,逐渐被用于更多大规模的网站和应用了,比如说当前最火的Facebook.淘宝.阿里.兰亭集势.宝宝树这样的大型的网站都在使用MySQL数据库 ...

  6. [转]MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验

    本文转自:http://liangweilinux.blog.51cto.com/8340258/1728131 年,嘿,废话不多说,下面开启MySQL优化之旅! 我们究竟应该如何对MySQL数据库进 ...

  7. MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验

    原文地址:http://liangweilinux.blog.51cto.com/8340258/1728131 首先在此感谢下我的老师年一线实战经验,我当然不能和我的老师平起平坐,得到老师三分之一的 ...

  8. 2019年最新老男孩高性能Web架构与自动化运维架构视频教程

    课程目录L001-老男孩架构15期-Web架构之单机时代L002-老男孩架构15期-Web架构之集群时代L003-老男孩架构15期-Web架构之dnsL004-老男孩架构15期-Web架构之缓存体系L ...

  9. Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)

    Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编   ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...

随机推荐

  1. SAP 跨公司销售业务

    SAP 跨公司销售业务  http://blog.sina.com.cn/s/blog_95ac31e30102x5wh.html   分类: SAP_SD SAP 跨公司销售业务 一.业务简介 在由 ...

  2. 微信小程序开发——简记

    MVVM:提倡渲染(页面)和逻辑分离.页面(DOM),逻辑(后端代码JS等)—> JS操纵DOM.通过模板引擎,操纵和表现. 页面与程序,如何配合工作: 微信客户端会根据page.json配置, ...

  3. zookeeper图形化的客户端工具

    追加一个zookeeper图形化的客户端工具: 1.zookeeper图像化客户端工具的下载地址:https://issues.apache.org/jira/secure/attachment/12 ...

  4. Project D | Digital life

    I have a dream. 1999年黑客帝国就已经提出了数字化生命的雏形,近些年的黑镜和其他科幻电影更是脑洞大开,但是生命科学的进展却差强人意. 当今人类世界里有三大复杂系统:以细胞为基础的生命 ...

  5. 自动车牌识别(ALPR)---https://blog.csdn.net/ELEVEN_ZOU/article/details/80893579

    1.基本功能:从一张或者一系列的图片中提取车牌信息,比如车牌号码.车牌颜色等信息. 2.功能扩展:车型.车品牌.车牌类型等. 3.应用方向:电子交易系统(停车自动收费.收费站自动支付等).交通执法.交 ...

  6. NetSec2019 20165327 exp1+ 逆向进阶

    NetSec2019 20165327 exp1+ 一.实验内容介绍 第一个实践是在非常简单的一个预设条件下完成的: (1)关闭堆栈保护 (2)关闭堆栈执行保护 (3)关闭地址随机化 (4)在x32环 ...

  7. requests库详解 --Python3

    本文介绍了requests库的基本使用,希望对大家有所帮助. requests库官方文档:https://2.python-requests.org/en/master/ 一.请求: 1.GET请求 ...

  8. textarea跟随内容自动伸缩高度实现方案

    监听input事件,然后将textarea的style.height设置为最低高度(19px),进而获取到元素的scrollHeight,然后将scroolHeight设置为style.height

  9. git 拉取远程代码

    git 拉取远程代码 || 利用vscode编辑器自带了git,可在ctrl+~打开控制台拉取代码,非常好用哦~在实际项目开发过程中,往往是已经存在远程项目了,我们定义的需求是只需要简单的操作git, ...

  10. css选择器以及使用场景

    1.选择器以及使用场景 id选择器:#header{} 类选择器:.header{} 元素选择器:div{} 子选择器:ul > li{} 后代选择器:div p{} 伪类选择器:a:hover ...