网站服务器

《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构

≯℡__Kan透↙ 提交于 2019-12-03 23:18:28
http://www.cnblogs.com/edisonchou/ 《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构 此篇已收录至 《大型网站技术架构》读书笔记系列目录 贴,点击访问该目录可获取更多内容。 首先,所谓网站的伸缩性,指 不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力 。在整个互联网行业的发展渐进演化中,最重要的技术就是 服务器集群 ,通过不断地向集群中添加服务器来增强整个集群的处理能力。 一、网站架构的伸缩性设计 1.1 不同功能进行物理分离实现伸缩   (1)纵向分离:将业务处理流程上得不同部分分离部署,实现系统的伸缩性;   (2)横向分离:将不同的业务模块分离部署,实现系统的伸缩性; 1.2 单一功通过集群规模实现伸缩   使用服务器集群,即将相同服务部署在多台服务器上构成一个集群整体对外提供服务。具体来说,集群伸缩性又分为应用服务器集群伸缩性和数据服务器集群伸缩性。这两种集群对于数据状态管理的不同,技术实现也有很大的区别。  It is said that 当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车 。 二、应用服务器集群的伸缩性设计 2.1 应用服务器那点必须知道的事儿   (1)应用服务器应该被设计成 无状态 的,即应用服务器不存储请求上下文信息;构建集群后

csrf原理及Flask处理方法

让人想犯罪 __ 提交于 2019-12-03 20:58:00
Flask之操作cookie app.py from flask import Flask, request, Response app = Flask(__name__) @app.route('/') def add_cookie(): # 返回操作面板 link = ''' <div> <h1>cookie 操作台</h1> <p><a href="/add_cookie">add cookie</a></p> <p><a href="/show_cookie">show cookie</a></p> <p><a href="/del_cookie">del cookie</a></p> </div> ''' return link @app.route('/add_cookie') def set_cookie(): res = Response("add cookies") res.set_cookie(key="name", value="maotai") # 添加cookie return res @app.route('/show_cookie') def show(): return request.cookies.__str__() # 获取cookie,并打印到前台 @app.route('/del_cookie') def del_cookie(): res

计算机网络学习笔记:第一章.概述

主宰稳场 提交于 2019-12-03 20:45:45
本文是《计算机网络》的自学课程,视频地址为: https://www.bilibili.com/video/av47486689。仅做个人学习使用,如有侵权,请联系删除 第一章:概述 1.2 因特网概述 网络设备叫做节点,网线叫做链路,左图那个中心节点是交换机 互联网是网络之间用路由器连起来,路由器还有广域网接口,可以接万维网 交换机的符号: 路由器的符号: 互联网!=因特网 。因特网是全球最大的一个互联网,而其实只要任意两个网络联通就可以叫互联网。这两个其实名字是不一样的,互联网是internet,而因特网是Internet,一个大写一个小写。 还有一个常见的名称叫“以太网”,什么是以太网呢? 来源: https://www.zhihu.com/question/19918493 整个因特网使用的就是TCP/IP协议来实现相互通信 因特网发展的三个阶段: ARPANET,高级研究计划局网络,通称阿帕网,是美国国防高级研究计划局开发的世界上第一个运营的数据包交换网络,是全球互联网的鼻祖。 在1990年停止使用。 1975年互联网产生,1983年TCP/IP协议成为互联网标准协议,但直到那时它依然是用于美国国防部的。 TCP/IP诞生的时候由于是内部网络,所以默认主机不是恶意的,因此在网络设计上有安全性的不足,可以进行arp欺骗等,现在的新型网络协议,例如Ipv6已经克服了这个问题

大型网站技术架构(1)

允我心安 提交于 2019-12-03 19:06:04
网站都是从小网站一步一步发展为大型网站的,而这之中的挑战主要来自于庞大的用户、安全环境恶劣、高并发的访问和海量的数据,任何简单的业务处理,一旦需要处理数以 P 计的数据和面对数以亿计的用户时,问题就会变的很棘手 下面我们就来说说这个演变过程: 初始阶段 大型网站都是由小型网站演变而来的,网站架构也一样 小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,就像这样: 应用程序、数据库、文件等所有资源都在一台服务器上,通常使用 Linux PHP MySQL Apache 就可以完成整个项目部署,然后再买个域名,租一个廉价的服务器就可以开始我们的网站之旅了 应用服务与数据服务分离 随着业务的发展,逐渐的一台服务器已经不能满足需求,这时我们可以将 应用与数据分离 分离之后我们使用到三台服务器:应用服务器、文件服务器和数据库服务器,如下所示: 对于这三台服务器要求各不相同: 应用服务器 要处理大量的业务逻辑,所以需要更好更快更强大的 CPU 数据库服务器 需要快速的进行磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存 文件服务器 需要存储用户上传的文件资源,因此需要更大的硬盘存储空间 应用与数据分离后,各个的职责变得更加专一,网站的性能得到进一步的提升,但随着用户的继续增加,我们需要对网站架构进一步优化 使用缓存改善性能 网站的访问一样遵循二八定律:80% 的业务访问集中在 20%

Java学习流程

我怕爱的太早我们不能终老 提交于 2019-12-03 17:25:44
此篇为转载:原文链接: https://www.cnblogs.com/MonkTang/p/9204993.html Java学习流程 首先,我个人比较推崇的学习方法是:先学java前段,也就是HTML,css,js,因为学习java以后肯定是往java ee方向发展的,学习完前端,在学习后端很多东西比计较容易理解!   其中J2SE是关键,如果学好了java se 部分,基础扎实了,后面进阶学习也比较轻松!   补充说明一下:我觉得学习java比较合适的方法是先把所有的知识点过一遍,然后把所有的知识点串起来,边做开发边补充,就像写文章一样,先写好框架,然后再去润色填充。因为前期在学习的时候你不知道用在哪里,不知道用途,没有学习的目的,所以很多概念就很难理解,时间久了也容易遗忘。但是如果你直接从实践开始学习,很多知识点都充串联起来了,而且会印象深刻,当然前提条件是你已经入门,已经能写一些简单的程序,我个人现在也是按照这个方式在学习了,感觉很有效。    说明: 本文介绍的内容过于详尽,这里我补充一些基本的学习路线,相对比较简略,但是比较可行:     1、基础语法。也就是我们常说,各种编程语言都有的部分,数据类型,数组,for循环,do-while,switch……等等,是学习任何编程语言的基础,很关键。     2、面对对象:①类和对象;②Java的三大特性(封装、继承、多态)

PHP解决网站大数据大流量与高并发

与世无争的帅哥 提交于 2019-12-03 14:03:48
第一,硬件方面 普通的一个p4的服务器每天最多能支持大约10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力 软件怎么优化都是于事无补的。主要影响服务器的速度 有:网络-硬盘读写速度-内存大小-cpu处理速度。 第二,软件方面 第一个要说的就是数据库,首先要有一个很好的架构,查询尽量不用* 避免相关子查询 给经常查询的添加索引 用排序来取代非顺序存取,如果条件允许 ,一般MySQL服务器最好安装 在Linux操作系统中 。关于apache和 nginx 在高并发的情况下推荐使用 nginx ,ginx是Apache服务器不错的替代品。nginx内存消耗少 官方测试能够支撑5万并发连接,在实际生产环境中跑 到2~3万并发连接数。 php 方面不需要的模块尽量关闭,使用memcached,Memcached 是一个高性能的分布式内存对象缓存系统,不使用数据库直接从内存当中调数据,这样大大提升了速 度,iiS或Apache启用GZIP压缩优化网站,压缩网站内容大大节省网站流量。 第二,禁止外部的盗链。 外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对 于自身的图片或者文件盗链,好在目前可以简单地通过refer来控制盗链,Apache自 己就可以通过配置来禁止盗链,IIS也有一些第三方的ISAPI可以实现同样的功能。当 然

大型分布式网站架构设计--第1章 面向服务体系的架构

匿名 (未验证) 提交于 2019-12-03 00:27:02
本章目录: 分布式Java应用图: 分布式Java应用:大型系统会被拆分成多个子系统来实现,对于Java来说,这些子系统可能部署在同一台机器上不同的JVM,或者部署在不同机器上,但是这些子系统之间要进行相互通信来共同实现业务功能。 分布式应用架构的演变 分布式应用架构面临的首要问题,便是如何实现应用之间的远程调用(RPC)。有两种方式:一种是基于HTTP的RPC,一种是基于TCP的RPC。 RPC也就是远程调用,RPC的实现包括客户端和服务端,也就是服务提供方和服务调用方,服务调用方发送RPC请求到服务提供方,服务提供方根据服务调用方的参数执行请求方法,将执行结果返回给调用方,这就是一次RPC请求。 要注意 无论是什么类型的数据,最终都是要转成二进制在网络上传输。 对象的序列化:就是将对象转成二进制流的过程。 对象的反序列化:就是将二进制流转成对象的过程。 Java中的序列化代码: //定义一个字节数组的输出流 ByteArrayOutputStream os= new ByteArrayOutputStream(); //对象的输出流 ObjectOutputStream out = new ObjectOutputStream(os); //将对象写入字节数组输出,进行序列化 out .writeObject(zhangsan); byte [] zhangsanByte=os

Cookie详解

匿名 (未验证) 提交于 2019-12-03 00:19:01
Cookie简介 Cookie的引文原意是“点心”,它是在客户端访问Web服务器时,服务器在客户端硬盘上存放的信息,好像是服务器发送给客户的“点心”。服务器可以根据Cookie来跟踪客户状态,这对于需要区别客户的场合(如电子商务)特别有用。 当客户端首次请求访问服务器时,服务器先在客户端存放包含该客户的相关信息的Cookie,以后客户端每次请求访问服务器时,都会在HTTP请求数据中包含Cookie,服务器解析HTTP请求中的Cookie,就能由此获得关于客户的相关信息。 Cookie的运行机制是由HTTP协议规定的,多数Web服务器和浏览器都支持Cookie。Web服务器为了支持Cookie,需具备以下功能: ・在HTTP响应结果中添加Cookie数据。 ・解析HTTP请求中的Cookie数据。 浏览器为了支持Cookie,需要具备以下功能: ・解析HTTP响应结果中的Cookie数据。 ・把Cookie数据保存到本地硬盘。 ・读取本地硬盘上的Cookie数据,把它添加到HTTP请求中。 Cookie操作 对Cookie的操作无外乎三部分:读、分析、写。 дCookie Cookie theCookie = new Cookie(“username” , “Tom”); response.addCookie(theCookie); 当Servlet向客户端写Cookie时

企业CDN缓存加速原理解密

匿名 (未验证) 提交于 2019-12-02 23:51:01
CDN的全称Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快,更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接,负债情况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。 产生背景: BGP机房虽然可以提升用户体验但是价格昂贵,那么CDN的诞生可以提供比BGP机房对于用户更好的体验(让地区的同一线路访问当地的同一线路的网站),BGP机房和普通机房价格将近5-10倍的价格差。CDN使用单线的机房,根据用户的线路以及位置为用户选择靠近用户的位置以及相同的运营商线路,即提升了用户体验价格又降下来了。 CDN的价值:为客户省钱,同时提升用户体验。 (1)本地Cache加速提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性(省钱,用户体验提升)。 (2)镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。 (3

WDCP 打开网站 提示:ERR_EMPTY_RESPONSE,服务器未发送任何数据,因此无法加载该网页

匿名 (未验证) 提交于 2019-12-02 23:35:02
WDCP 打开网站 提示:ERR_EMPTY_RESPONSE,服务器未发送任何数据,因此无法加载该网页 原因: 解决方法: 注意事项: 原因: 没有在服务器的 域名管理 里面添加该域名 解决方法: 在该服务器里找到 域名管理 添加该域名 注意事项: 域名是否解析成功: 打开 cmd 命令行 输入 ping xxx.com 测试域名是否解析成功 新建站点: 注意设置端口和ip地址 文章来源: https://blog.csdn.net/qq_42961790/article/details/90521929