缓存服务器

Nginx 性能优化有这篇就足够了!

▼魔方 西西 提交于 2020-03-12 23:41:45
1、Nginx运行工作进程数量 Nginx运行工作进程个数一般设置CPU的核心或者核心数x2。如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor /proc/cpuinfo | wc -l [root@lx~]# vi/usr/local/nginx1.10/conf/nginx.conf worker_processes 4; [root@lx~]# /usr/local/nginx1.10/sbin/nginx-s reload [root@lx~]# ps -aux | grep nginx |grep -v grep root 9834 0.0 0.0 47556 1948 ? Ss 22:36 0:00 nginx: master processnginx www 10135 0.0 0.0 50088 2004 ? S 22:58 0:00 nginx: worker process www 10136 0.0 0.0 50088 2004 ? S 22:58 0:00 nginx: worker process www 10137 0.0 0.0 50088 2004 ? S 22:58 0:00 nginx: worker process www 10138 0.0 0.0 50088

百度面试题:从输入url到显示网页,后台发生了什么?

家住魔仙堡 提交于 2020-03-12 18:55:03
参考 http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ http://www.cnblogs.com/wenanry/archive/2010/02/25/1673368.html 原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。 本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~ 1. 首先嘛,你得在浏览器里输入要网址: 2. 浏览器查找域名的IP地址 导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。 路由器缓存 – 接着,前面的查询请求发向路由器

在浏览器中输入网址后是怎么跳转到指定的服务器的

血红的双手。 提交于 2020-03-12 18:53:10
1. 首先,在浏览器里输入网址 2. 浏览器查找域名的IP地址 DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间。 操作系统没有告诉浏览器储存DNS记录的时间,所以不同浏览器会储存各自固定的一个时间(2分钟到30分钟不等)。 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。 路由器缓存 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。 ISP DNS 缓存 – 接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。 递归搜索 – 你的ISP的DNS服务器从跟域名服务器开始进行递归搜索,从.com顶级域名服务器到Facebook的域名服务器。一般DNS服务器的缓存中会有.com域名服务器中的域名,所以到顶级服务器的匹配过程不是那么必要了。 DNS返回多个IP时的解决方案: 1.负载平衡器:是以一个特定IP地址进行侦听并将网络请求转发到集群服务器上的硬件设备。 一些大型的站点一般都会使用这种昂贵的高性能负载平衡器。 2. 地理DNS:根据用户所处的地理位置,通过把域名映射到多个不同的IP地址提高可扩展性。这样不同的服务器不能够更新同步状态,但映射静态内容的话非常好。比如输入google.com在中国返回www

nignx正向代理,nginx反向代理

。_饼干妹妹 提交于 2020-03-12 08:11:08
nginx正向代理 正向代理就是假设有一个内网 内网有两台机器,这两台机器只有 a 可以上网 b 不能上网,但是 a 和 b 通过网络相连接 这时如果 b 想访问外网,就可以通过 a 来正向代理访问外网 正向代理就是在内网中模拟目标服务器,把内网中其它机器的请求 转发给外网中的真正的目标服务器 所以正向代理是接受内网其它机器的请求的 反向代理则是反过来 也是一个内网,有几台机器,只有其中一台与外网连接 但是反向代理接受的不是内网机器的访问请求 反向代理接受的是外网过来的访问请求 然后把请求转发到内网中的其它机器上去 外网发出请求的用户并不知道反向代理的服务器把请求转发给了谁 要在一台机器上设置正向代理的功能 如图,编辑一个nginx配置文件 上图就是配置文件内容 如果配置一台服务器作为正向代理服务器 那么这个虚拟主机配置文件就必须是默认虚拟主机 因为所有访问这台机器的网络请求应该先访问这个虚拟主机才对 所以这里要设置 default_server 然后还要把原来的 默认虚拟主机 配置文件名称修改掉 如图,把 default.conf 配置文件的名称修改一下 这样就取消了原来的默认虚拟主机配置文件了 因为默认的默认虚拟主机配置文件就是 default.conf 配置文件里面的 resolver 119.29.29.29 意思是配置一个 dns 地址 因为是做正向代理

mysql 学习笔记 01

孤街醉人 提交于 2020-03-11 23:29:43
知识大纲 客户端查询请求流程 先来看客户端运行一条查询 sql 会经过哪些流程: mysql 基本组成结构 从上面的图中可以看出,mysql 大致由 server 层 和 存储引擎层组成。 为了管理方便,mysql 把连接管理、查询缓存、语法解析、查询优化这些并不涉及真实数据存储的功能划分为 server 层的功能,把真实存取数据的功能划分为存储引擎的功能。 下面详细说明下各个模块的功能: 一、server server 层又分别由 连接器、查询缓存、分析器、优化器、执行器组成。 1.1 连接器 mysql 是 C/S 架构,每当有一个客户端连接到服务器时,服务器都会创建一个线程来专门处理与这个客户端的交互。 客户端和服务端的连接方式总共有三种。 TCP/IP 命名管道和共享内存(Windows 系统, 客户端和服务端 必须在同一台机器) Unix 域套接字文件(类Unix 系统,客户端和服务端 必须在同一台机器) 注意: 如果用户名密码认证通过,连接器会到权限表里面查出你拥有的权限。之后,这个连接里面的权限判断逻辑,都将依赖于此时读到的权限。 也就是说即使管理员在此时修改了用户的数据库权限,只有用户重新建立连接才会生效。 当客户端与服务端建立连接后,客户端就会以文本消息的方式与服务端通信(CRUD)。服务端接收到消息后(比如一个查询请求),还要进行一系列处理,才能返回数据给客户端

MYSQL 逻辑架构

我们两清 提交于 2020-03-11 17:48:56
MYSQL 逻辑架构 思维导图 前言 》 Mysql并非尽善尽美,但足够灵活,能适应高要求环境,如Web应用。 》 Mysql在众多平台上运行良好,支持多种数据类型,但不支持对象类型(Mongodb支持) 》 Mysql的存储引擎可以基于表建立,以满足对数据存储,性能,特征及其他特性的各种需要。 架构逻辑视图 每个虚线框为一层,总共三层。 第一层,服务层(为客户端服务):为请求做连接处理,授权认证,安全等。 第二层,核心层:查询解析,分析,优化,缓存,提供内建函数;存储过程,触发器,视图。 第三层,存储引擎层,不光做存储和提取数据,而且针对特殊数据引擎还要做事务处理。 连接管理与安全性(第一层 服务层) > 处理流程 Δ 每个连接的查询都在一个进程中的线程完成。 Δ 服务器负责缓存线程,所以服务层不需要为每个连接新建线程。 > 认证流程    优化与执行 > 在解析查询之前,服务器会“询问”是否进行了查询缓存(只能缓存SELECT语句和相应结果)。缓存过的直接返回结果,未缓存的就需要进行解析查询,优化,重新执行返回结果。 > 解析查询时会创建一个内部数据结构(树),然后对其进行各种优化。 > 优化:重写查询,决定查询的读表顺序,选择需使用的索引。 思维导图 前言 》 Mysql并非尽善尽美,但足够灵活,能适应高要求环境,如Web应用。 》 Mysql在众多平台上运行良好

redis缓存服务器

点点圈 提交于 2020-03-11 00:19:06
redis缓存服务器 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。 1、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 2、Redis支持数据的备份,即master-slave模式的数据备份。 3、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 nginx+tomcat+redis实现负载均衡、session共享 1,安装部署nginx负载均衡服务器 安装zlib-devel、pcre-devel等依赖包 [root@www ~]# yum -y install gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel openssl openssl-devel 注: 结合proxy和upstream模块实现后端web负载均衡 结合nginx默认自带的ngx_http_proxy_module模块 和ngx_http_upstream_module模块实现后 端服务器的健康检查 创建nginx程序用户 [root@www ~]#

Web前端技术分享之浏览器缓存机制

陌路散爱 提交于 2020-03-10 19:37:00
Web缓存是指一个Web资源(如HTML页面、图片、JS、数据等)存在于Web服务器和客户端(浏览器)之间的副本。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。但如何理解浏览器缓存呢?接下来的我就给大家简单介绍一下。 Web缓存有什么作用? 1、减少网络带宽消耗。无论对于网站运营者或者用户,带宽都代表着金钱,过多的带宽消耗,只会便宜了网络运营商。当Web缓存副本被使用时,只会产生极小的网络流量,可以有效的降低运营成本。 2、降低服务器压力。给网络资源设定有效期之后,用户可以重复使用本地的缓存,减少对源服务器的请求,间接降低服务器的压力。同时,搜索引擎的爬虫机器人也能根据过期机制降低爬取的频率,也能有效降低服务器的压力。 3、减少网络延迟,加快页面打开速度。带宽对于个人网站运营者来说是十分重要,而对于大型的互联网公司来说,可能有时因为钱多而真的不在乎。那Web缓存还有作用吗?答案是肯定的,对于最终用户,缓存的使用能够明显加快页面打开速度,达到更好的体验。 浏览器端的缓存规则 对于浏览器端的缓存来讲,这些规则是在HTTP协议头和HTML页面的Meta标签中定义的。他们分别从新鲜度和校验值两个维度来规定浏览器是直接使用缓存中的副本,还是需要去源服务器获取更新的版本。 1)新鲜度(过期机制):也就是缓存副本有效期

web离线缓存

只愿长相守 提交于 2020-03-10 07:04:30
web应用程序本地缓存:通过每个页面的manifest文件来管理; manifest :文件是一个简单的文件夹,在该文件中,列举出需要被缓存或不需要缓存的文件资源的文件名称,文件的资源路径;可以为每个页面单独指定一个manifest文件,也可以为web应用程序指定总的manifest文件; cache :指定需要缓存在本地的资源文件; network :指定不进行本地缓存的文件 只有当客户端与服务器建立连接时才能访问; f allback :指定两个资源文件,第一个在线访问时使用的资源文件,第二个不在线访问的资源文件; 浏览器和服务器交互过程 首次访问http://luling(index.html 主页 ,manifest文件为index.manifest文件请求缓存index.html,hello.js,hello1.jpg) 1.浏览器请求http://luling; 2.服务器返回给浏览器index.html; 3.浏览器解析index.html网页,请求网页上的所有资源(html,css,js,图片,以及manifest文件); 4.服务器返回浏览器所有资源; 5.浏览器处理manifest文件,请求需要被缓存的资源; 6.服务器返回浏览器需要请求的缓存资源; 7.浏览器对缓存资源进行更新;存入缓存 触发事件通知本地缓存被更新; 再次访问http://luling

memcache缓存服务器

可紊 提交于 2020-03-10 01:54:00
memcache缓存服务器 MemCache 是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统, 用于动态Web 应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。 实验: 1、安装 libevent 软件(四台) [root@localhost ~]# tar -zxvf libevent-2.0.21-stable.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/libevent-2.0.21-stabl [root@localhost libevent-2.0.21-stable]# ./configure --prefix=/usr/ [root@localhost libevent-2.0.21-stable]# make && make install 2、安装 memcached 软件(Memcached 服务器 2 台) [root@localhost ~]# tar -zxvf memcached-1.4.31.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/memcached-1.4.31/ [root@localhost memcached-1.4.31]# ./configure -