想當初,我是受到BT網站海盜灣的啟發,開發了一個DHT下載網站:http://www.ibmid.com,有一段時間通宵編程,理解此個協議. 海盗湾(The Pirate Bay)是世界上最大的 BT 种子服务器,也是网络分享与下载的重镇之一.不过,屡遭取缔与查封的它们这次还是没能用胳膊拗过大腿,继网页频繁显示离线后,它们在暗网上的域名也离线一个多月了,恐怕这次海盗湾真要凉凉了. 过,由于该网站用了 Cloudflare 的 Always Online 技术,因此您还能继续访问网页快照.我们会持…
文章虽然有点老,但原理差不多. 继上一篇文章(http://www.cnblogs.com/EasonJim/p/6601146.html)介绍了BT的原理,现在来看下BT服务端搭建的原理. 一.BT原理介绍 前言: 传统的文件下载服务都是基于客户机/服务器模型,被下载的文件放在服务器上,用户登录服务器,将该文件下载到本地.在文件下载的过程中,被传输文件的来源和目的端并不对等,服务器只是单向地将文件传送给客户端. 这种传统软件下载模式的缺点是显而易见的,整个系统的瓶颈位于服务器.由于受到服务器处…
<?php /** * php 获取时间(今天,昨天,三天内,本周,上周,本月,三年内,半年内,一年内,三年内) * * author:ihelloworld2010@gmail.com * date:2012-06-28 16:00:01 */ $q = $_GET['q'] ? intval($_GET['q']) : 0; $text = ''; $now = time(); if ($q === 1) {// 今天 $text = '今天'; $beginTime = date('Y-m…
BT下载可以说是目前网络上最流行的P2P文件共享方式了.BT服务器相比于FTP服务器有许多优势,其中最重要的一点就是BT服务器不受服务器带宽和连接到服务器用户数量的限制,能够提供高速的下载服务.今天,我就给大家介绍一下如何架设一台BT服务器,希望能够给学习BT服务器架设的朋友们提供一些有用的帮助. 一.BitTorrent服务器资料 首先让我们了解BitTorrent服务器需要什么样的配置. 1.需要一个配置比较高的服务器 服务器的配置根据网站访问量的不同而定,如果网站有日5万以上的访问量,最好…
P2P(Peer to Peer 即对等网络)就是在这种背景下提出的一种网络技术,P2P可以简单地定义为通过直接交换信息,共享计算机资源和服务,对等计算机兼有客户机和服务器的功能.在这种网络中所有的节点是对等的(称为对等点),各节点具有相同的责任与能力并协同完成任务,对等点之间通过直接互连实现信息资源.处理器资源.存储资源甚至高速缓存资源等的全面共享,无需依赖集中式服务器支持. 随着宽带网可使大家在互联网上共享到平时用普通方式难以接触到的各种各样海量的资源.使用P2P软件的每一台PC 都是客户机…
BT的流行比之当年的江湖,传奇等的流行有过之而无不及.现在我们常说的话题是:“今天你BT了吗?”哇K!兄弟们你们怎么吐了?!假如你还不知道BT是什么,那似乎证明你已经到了归隐Internet的时候了,当然这里面更有荣幸的被称之为“菜鸟级”的小虾了!不急,当你看完这篇文章以后,就再也没有人会讥笑你,因为你将要学会架设一个私人的BT服务器,而且只要你把你的个人电脑,ADSL应用起来就可以了!更关键的是,这BT服务器是安全的哟! BT是类似与一种电驴的P2P共享软件,全名叫“BitTorrent",中…
高性能web服务器(热死你)Resin Linux的安装.配置.部署,性能远超Nginx支持Java.PHP等 一.    安装resin 1.  下载resin: 下载地址:http://caucho.com/products/resin/download/gpl#download 这里下载了4.0.48版本的zip,这里格式不同,zip格式即可在window运行也可在linux运行,其中简单的区别在于启动方式不同.请看下文启动resin的说明哦! ①     安装resin,通过解压缩到自己…
返回目录 再写完缓存篇第一回之后,得到了很多朋友的好评和来信,所以,决定加快步伐,尽快把剩下的文章写完,本篇是第三回,主要介绍使用HttpModule实现的文件级缓存,在看本文之前,大家需要限度HttpModule有一个了解,可以先看我的这篇文章<开发人员应该对IIS理论层的知识了解的多一些~第四讲 HttpModule中的几大事件> 对于文件级缓存来说,我们要知道两点,一为文件的URL,二为文件的 下面是HttpModuleCache的核心代码 /// <summary> ///…
第三回 万文疑谋生思绪 璃月港口见清玉 ===================================================================== 云溪愣了下,在他的认知中,神之眼正常而言不会有黑色的存在,就像在实数的体系内不会有i一样,他摇了摇头.而纪存初的眼中有闪过一次迷茫和失望,很快恢复过来,笑道:"算了,反正也只是个坊间传说而已,对了,小子,有兴趣入我万文集舍么?" 话题跳转的如此之快,让云溪有点猝不及防,万文集舍到确实是个大宗级别的存在,进入其…
引用地址:http://www.linuxvirtualserver.org/zh/lvs3.html LVS集群中的IP负载均衡技术 章文嵩(wensong@linux-vs.org) 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集群中实现的三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR)的工作原理,以及它们的优缺点. 1.前言在 前面文章中,讲述了可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份).我们先…
闲来无事,在腾讯云上申请了一个免费的服务器,想将自己写的网页发布到服务器上,服务器的申请很简单,百度搜索 腾讯云 ,然后新人第一次注册能申请到免费一个月的云主机,虽然配置不怎么高,但是还是能用的,这是我申请到一个云主机: 那么如何将我们本机的文件传送到云主机上呢? 1.通过远程连接到这个服务器,然后本机到服务器能直接粘贴复制文件上去 2.不能粘贴复制的,我们有第二种方法: ①.windows+R,输入mstsc ②.点击“选项”按钮,打开远程连接选项卡 选择本地资源,点击详细信息 打开驱动器,选…
拙劣的供应商(团队) 坦率来说, 说这个原因需要一点勇气, 但在我从业的经历中, 充斥这大量的这样的案例, 没有什么实施经验的团队, 对产品几乎没什么了解的供应商, 三脚猫的开发人员,之前只会做做微软产品代理的所谓”金牌”, 不一而足. 我曾经见过不止一家公司, 不知道那根筋错了, 忽然说要做SharePoint, 第二天就在网站上挂出广告说自己是SharePoint方案提供商, 然后做砸一两个项目,然后说SharePoint是个烂东西而收场….  当然, 作为还在这个圈子里混的一个小厂商, 我…
模块.CGI.FastCGI三种方式介绍 以PHP脚本为例: 模块方式是指Web服务器通过libphp5.so模块调用PHP服务,模块将相关函数嵌入Web服务请求处理流程,不需要额外解释器进程.注意,libphp5.so是PHP提供的,不是apache自带的. CGI模式是指Web服务器在本地启动一个解释器进程执行PHP脚本,解释完毕后关闭进程.这种方式只适用于本地,并且是串行执行,效率较低. FastCGI模式是指由单独的进程管理器如PHP-FPM启动并管理多个解释器进程,Web服务器只需将脚…
SVN服务器搭建和使用(三) 接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等. 添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态,如图: 这时候,你需要告知TortoiseSVN你的操作,如图: 加入以后,你的文件会变成这个状态,如图: 这时候使用TortoiseSVN进行提交.这样别人就能看到你所做的更改了,如图. 修改文件 使用TortoiseSVN更新,修改工作副本中的Readme.txt文…
一.资源准备 1.准备三台服务器H1.H2.H3 172.26.237.83 H1 172.26.237.84 H2 172.26.237.85 H3 二.配置服务器 1.在H1服务器设置SSH免密登录:在H1生成RSA公钥和私钥(在H1操作) (1)执行ssh-keygen -t rsa命令(2)进入生成密钥所在的文件目录cd /root/.ssh/(3)将公钥(名为id_rsa.pub文件)追加到认证文件(名为authorized_keys文件),先后执行以下指令: ssh-copy-id…
11. Roadstar 如何收场? 雷锋网:你觉得 Roadstar 造成今天这样的局面,是什么导致的? 投资人代表 1:刚才我们也数次表达了,在每个人身上,可能每个人的诉求,不能达到同步,与公司的发展方向有了偏差,所以造成了这样一个结果.看到这样一个事情发生,对我们来说也是一个不幸. 雷锋网:Roadstar 变成这样,你们觉得罪魁祸首是谁? 投资人 A:那小川.最大的错误就是把那小川引入团队.那小川因为同学的关系,佟显乔应该受到他很大的影响. 雷锋网:那你们怎么评价那小川的贡献?现在好像都…
为什么需要原子性操作? 我们考虑一个例子:(1)x++这个常见的运算符在内存中是怎样操作的?从内存中读x的值到寄存器中,对寄存器加1,再把新值写回x所处的内存地址 若是有两个线程同时对同一个变量++,就会出现问题,如下: time    Thread 1   Thread 20   load eax, x1      load eax, x2   add eax, 1  3      add eax, 14    store x, eax5      store x, eax 我们希望的结果是x…
问题现象: 在linux服务器上运行一个指定的脚本时,就会出现无数个相同进程的,而且不停的产生,杀也杀不掉,最后系统就陷入死循环,无法登陆,只能人工去按机器的电源键才可以.这够崩溃的吧? 问题分析过程: 在分析过程中发现这个特定的脚本有些特别,和系统中已有的命令的名字是相同的. 以free命令为例: 这个脚本名字就叫做free(后面没有带.sh),而且这个脚本文件里又去调用了free命令. 这个脚本的本意应该是要去调用free命令来完成一个任务. 那是否就是因为这样就会导致问题呢? 其实光这样是…
TCP预先派生子进程服务器程序,accept无上锁保护 我们的第一个"增强"型服务器程序使用称为预先派生子进程的技术.使用该技术的服务器不像传统意义的并发服务器那样为每个客户现场派生一个子进程,而是启动阶段预先派生一定数量的子进程,当各个客户连接到达时,这些子进程立即就能为他们服务.下图展示了服务器父进程预先派生出N个子进程且正有2个客户连接着的情形.         这种技术的优点在于无须引入父进程执行fork的开销就能处理新到的客户.缺点则是父进程在服务器启动阶段猜测需要预先派生多…
<IfModule mpm_prefork_module> StartServers MinSpareServers MaxSpareServers MaxClients MaxRequestsPerChild </IfModule> <IfModule mpm_worker_module> StartServers MaxClients MinSpareThreads MaxSpareThreads ThreadsPerChild MaxRequestsPerChil…
接上篇 接上篇<高性能流媒体服务器EasyDSS前端重构(二) webpack + vue + AdminLTE 多页面提取共用文件, 优化编译时间> 本文围绕着实现EasyDSS高性能流媒体服务器的前端框架来展开的,具体EasyDSS的相关信息可在:www.easydss.com 找到! element-ui 介绍 饿了么前端开发组件框架 element-ui 是 "一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的组件库,提供了配套设计资源,帮助你的网站快速成型.&qu…
CControlSocket类的分析,CControlSocket类的内容比较多,为什么呢.因为通信控制命令的传输全部在这里,通信协议的多样也导致了协议解析的多样. 1.OnReceive  其大致说明:本函数由框架调用,通知套接字缓冲中有数据,可以调用Receive函数取出. void CControlSocket::OnReceive(int nErrorCode) { try { TCHAR buff[BUFFER_SIZE+]; int nRead = Receive(buff, BUF…
一.下载nginx镜像 官网地址:https://hub.docker.com/_/nginx #下载镜像 默认为最新版本 docker pull nginx#下载指定版本 docker pull nginx:版本号 二.部署nginx(挂载部署) 1.#新建目录,存储nginx.conf文件cd homemkdir nginx2.#上传nginx的配置文件放置在此目录下3.挂载部署docker run -d --restart=always -p 80:80 -p 81:81 --name n…
Sequences(队列) 只要序列的所有子代返回SUCCESS,它便会对其进行Tick. 如果有任何子级返回FAILURE,则序列中止. 当前,该框架提供三种节点: Sequence SequenceStar ReactiveSequence 它们具有以下规则: 在tick第一个节点之前,节点状态为RUNNING. 如果一个节点返回成功SUCCESS,将会tick下一个节点. 如果最后一个节点也返回SUCCESS,所有的节点被暂停,并且序列返回SUCCESS. 要了解三个ControlNode…
先看LockedQueue.h template <class T, typename StorageType = std::deque<T> >class LockedQueue{......} 一个带锁的多线程可安全访问的类,容器默认使用std::deque 常规代码 push进T类型的元素 pop出T类型的元素 使用锁定 保证线程安全 相比C++11之前的繁琐做法 现在加锁可以使用 std::lock_guard 当使用std::lock_guard<std::mute…
CSS盒子模型 div布局 js 这些都懂一点,但仅仅是懂一点,有时间就学一下咯…
挑着做一些好玩的ctf题 FlatScience web2 unserialize3upload1wtf.sh-150ics-04web i-got-id-200 FlatScience 扫出来的login.php 查看源码,发现参数debug,传参?debug=1,得到如下代码: <?php if(isset($_POST['usr']) && isset($_POST['pw'])){ $user = $_POST['usr']; $pass = $_POST['pw']; $d…
接下来,试试用TortoiseSVN修改文件,添加文件,删除文件,以及如何解决冲突等. 添加文件 在检出的工作副本中添加一个Readme.txt文本文件,这时候这个文本文件会显示为没有版本控制的状态,如图: 这时候,你需要告知TortoiseSVN你的操作,如图: 加入以后,你的文件会变成这个状态,如图: 这时候使用TortoiseSVN进行提交.这样别人就能看到你所做的更改了,如图. 修改文件 使用TortoiseSVN更新,修改工作副本中的Readme.txt文件,加入"hello worl…
    一.环境和工具 ubuntu 14.04 desktop 不用server的原因是一部分的演示用到了linux视频播放和直播软件,自己还要装桌面,麻烦. 不建议使用 最新的16TLS,我一开始就用它来做的,但是各种坑,因为很多包都被废弃或者必须降级   Nginx1.8.1 这个是我之前装的版本,版本没什么大的影响 我是源代码编译安装的,不建议用 apt-get install nginx nginx-rtmp-module github地址:https://github.com/aru…
回到目录 包括京东,淘宝在内的几个互联网老大,在实现分布式文件存储这块都使用了FastDFS,它是一个轻量级的东西,安装与使用都很方便,服务器间通过socket进行数据通讯,无论在安全和效率上都是可以接受的,fastDFS的server端对windows服务支持,所以,我们需要有台linux服务器专门来做文件存储工作,这对于大型站点为说是必要的,也是负载均衡的一种体现. 在你的项目中,可以会有WWW网站,file文件存储,db数据库,cache缓存数据,search大数据检索分配不同的服务器,这…