<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>服务器 on 庞玉栋个人博客</title><link>https://pangyd.com/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/</link><description>Recent content in 服务器 on 庞玉栋个人博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 19 Sep 2026 02:00:00 +0800</lastBuildDate><atom:link href="https://pangyd.com/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/index.xml" rel="self" type="application/rss+xml"/><item><title>Grab 智能体框架 LLM-Kit 加速 AI 智能体生产部署</title><link>https://pangyd.com/post/radar-534/</link><pubDate>Sat, 19 Sep 2026 02:00:00 +0800</pubDate><guid>https://pangyd.com/post/radar-534/</guid><description>&lt;blockquote>
&lt;p>&lt;strong>原文&lt;/strong>：&lt;a href="https://www.infoq.cn/article/AFC40lL0yaxVCDvBRFOK?utm_source=rss&amp;amp;utm_medium=article">Grab 智能体框架 LLM-Kit 加速 AI 智能体生产部署&lt;/a>&lt;/p>
&lt;p>&lt;strong>作者&lt;/strong>：作者：Hien Luu&lt;/p>
&lt;p>&lt;strong>来源&lt;/strong>：InfoQ 中国（架构）&lt;/p>
&lt;/blockquote>
&lt;h2 id="正文">正文&lt;/h2>
&lt;p>Grab 用 LLM-Kit 对 500 多个内部智能体服务进行了标准化。LLM-Kit 是一个脚手架与集成工具集，可为新建服务直接提供基础智能体执行循环，同时内置评估、链路追踪、密钥管理以及工具服务器连接能力。智能体会在运行时从 50 多个 MCP 服务器中发现可用工具，并通过统一的网关访问模型。因此，新增能力和新增模型服务商只需要进行注册或配置，不需要重新部署。&lt;/p>
&lt;p>现在，在 Grab 把一个全新的 AI 智能体服务接入生产环境大约需要 1 小时，而过去需要两周甚至更久。效率提升的关键点不在于智能体本身的推理循环，而是周围的配套系统：密钥、追踪、服务发现和评估。Grab 在一篇关于 LLM-Kit 的工程博客文章中介绍了这一变化。该框架目前为这家东南亚网约车和外卖公司的 500 多个服务提供支撑，其中包括每天被数百万商家、司机和消费者使用的智能体。文章写道：“推理循环的开发只花了一个下午，而生产环境适配封装却要两周。”&lt;/p>
&lt;p>LLM-Kit 消除的是每项服务都要单独做技术方案决策的负担。它没有被设计成一种新的智能体抽象或领域特定语言，而是围绕 Grab 已有的基础设施而搭建的脚手架。Grab 的思路发生了转变：不再逐个服务重复解决同类问题，改为集中统一一次性解决所有问题，LLM-Kit 正是在这个思路下搭建而成。工程师填写一个表单，就会得到一个 GitLab 代码库，里面是一个可运行的 FastAPI 服务，已经内置了 LangGraph Agent 模块、OpenTelemetry 追踪、Vault 密钥管理和服务发现，并且从第一次代码提交开始就带有一个评估端点，可用 ROUGE、BLEU 以及另一个模型作为评分器进行打分。&lt;/p>
&lt;p>图 1：FastAPI 服务项目目录结构（来源：Grab 博客）&lt;/p>
&lt;p>工具并不是预先绑定好的：智能体会在运行时从 50 多个已注册、支持 Model Context Protocol 的服务器中获取工具。因此，一项能力只需注册一次就能被所有智能体使用。模型服务商同样不是预先接好的。每一次模型调用都会经过兼容 OpenAI 接口的 GrabGPT Gateway。该网关前置接入了五家服务商，并注入凭证，因此应用代码永远不会硬编码某个服务商的信息。&lt;/p>
&lt;p>选择框架而不是平台，是有意为之。文章解释了原因：&lt;/p>
&lt;p>平台会将团队束缚在固化的预设方案中，而这些方案很快就会过时。采用框架的形式则可以适配开发者现有的工作方式。&lt;/p>
&lt;p>分析师 Kai Waehner 曾在今年 4 月份提出，”Agentic AI 的技术锁定比 API 锁定更持久，因为它会同时在多个层面累积。“他提到的层面包括模型、框架、运行时，以及团队基于这些组件搭建出来的开发范式。他的文章并非针对 Grab，但这个分析框架同样适用：网关覆盖的是模型层，而框架、运行时与开发范式则很难封装到单一接口背后，并且是 LLM-Kit 上所有服务共用的部分。&lt;/p></description></item><item><title>训练操作说明</title><link>https://pangyd.com/post/208/</link><pubDate>Thu, 20 Sep 2018 08:28:51 +0800</pubDate><guid>https://pangyd.com/post/208/</guid><description>&lt;p>任务一:以下按顺序启动:&lt;/p>&lt;p>&lt;span>	&lt;/span>zkServer.sh start(三台同时启动);&lt;/p>&lt;p>&lt;span>	&lt;/span>start-dfs.sh （lky01）&lt;/p>&lt;p>&lt;span>	&lt;/span>start-yarn.sh (lky02)&lt;/p>&lt;p>&lt;span>	&lt;/span>yarn-daemon.sh start resourcemanager (lky03)&lt;/p>&lt;p>&lt;span>	&lt;/span>start-spark-all.sh (lky01)&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>任务二:数据采集:&lt;/p>&lt;p>&lt;span>	&lt;/span>在sqoop的bin目录下执行:sqoop import --connect jdbc:mysql://192.168.0.200:3306/retail --username root--password 123456 --table consume_notes --hive-import --create-hive-table -m 1&amp;nbsp; &lt;span>		&lt;/span>(导入成功后，请在hive里删除导入的数据表,以免下次导入出现报错,如出现报错请删除错误日志里面提示的缓存目录:hadoop dfs rm -r [日志错误表位置]).&lt;/p>&lt;p>&lt;span>	&lt;/span>数据预处理&lt;/p>&lt;p>&lt;span>	&lt;/span>在intelij项目里面修改数据库的地址为192.168.0.200,然后打包上传到服务器,在opt/jars/spark/目录下执行./spark-submit.sh [执行类的地址（在intelij拷贝）] 执行完毕后,查看数据库中是否有数&lt;span>		&lt;/span>据 (将执行完毕后出现的数据表进行删除,以免影响下一个人使用).&lt;/p>&lt;p>&lt;span>	&lt;/span>数据挖掘（零售）&lt;/p>&lt;p>&lt;span>	&lt;/span>按照项目代码 创建输入目录,执行项目,在输出文件夹中查看是否有数据.&lt;/p>&lt;p>&lt;span>	&lt;/span>数据挖掘（建筑）&lt;/p>&lt;p>&lt;span>	&lt;/span>在lky01上执行 nc -lk 44445 在本机项目中查看项目配置的ip和端口是否和服务器端配置的一样,确保在同一端口,在JDBC配置的类中修改好输出数据的数据库地址,然后启动本地项目,在服务器界面输入数据，然后查看数据库中是否有刚才输入的数据.&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>任务三:数据可视化:&lt;/p>&lt;p>&lt;span>	&lt;/span>数据源配置:新建数据源;选择jdbc数据源,配置好jdbc的地址,然后保存 (配置数据源的地址为192.168.0.202).&lt;/p>&lt;p>&lt;span>	&lt;/span>数据集配置:新建数据集,按照题目给出的数据查询语句,粘贴到目标框,然后点击读取数据,无误后保存.&lt;/p>&lt;p>&lt;span>	&lt;/span>图表设计:根据题目给出的图表内容 设计图表.&lt;/p></description></item><item><title>建站仿站大师：对建站来说，选择虚拟主机有哪些优点和缺点</title><link>https://pangyd.com/post/135/</link><pubDate>Mon, 25 Dec 2017 12:31:21 +0800</pubDate><guid>https://pangyd.com/post/135/</guid><description>&lt;div id="img-content">&lt;div class="rich_media_content " id="js_content">&lt;p>&lt;span>随着互联网的发展和进步，主机商在提供多种主机种类的同时，也提供着应有尽有的主机方案，如此一来，站长们就可以有多种选择。在建站时，站长可以在虚拟主机、VPS主机、云主机、服务器等主机类型中作出选择。其中不乏有很多人会选择虚拟主机，这取决于虚拟主机独特的优势。但是事情都有两面性，虚拟主机也是如此，也有自身的缺点。&amp;nbsp;&lt;/span>&lt;br>&lt;span>其实对建站来说，正确认识所选虚拟主机有哪些优点和缺点才是明智的做法。&amp;nbsp;&lt;/span>&lt;br>&lt;span>选择虚拟主机的优点：&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;strong>&lt;span>一.节省建站成本&amp;nbsp;&lt;/span>&lt;/strong>&lt;br>&lt;span>　　如果您搭建个人网站，或者为中小型企业搭建网站，选择虚拟主机是最合理的。因为如果您选择了独立服务器，不仅造成网站资源的浪费，也会大大增加建站的成本。而选择虚拟主机在满足建站的需求的前提下，还能为您节省建站成本。&amp;nbsp;&lt;/span>&lt;br>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;strong>&lt;span>二.操作简单，利于网站管理&amp;nbsp;&lt;/span>&lt;/strong>&lt;br>&lt;span>　　虚拟主机简单易操作的优点，更是受新手站长的喜爱。因为在虚拟主机的控制面板上，通常会对一些设置作出明确的标识，即使您不懂技术也能很容易就能上手操作，这对新手简直是福音。&amp;nbsp;&lt;/span>&lt;br>&lt;strong>&lt;span>&lt;br>&lt;/span>&lt;/strong>&lt;/p>&lt;p>&lt;strong>&lt;span>三.即买即用&amp;nbsp;&lt;/span>&lt;/strong>&lt;br>&lt;span>　　在主机商选购好虚拟主机，只有提交申请后主机商就可立即为您开通。这种即买即用的方式，在很大程度上为您节省了建站的时间。&amp;nbsp;&lt;/span>&lt;br>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;strong>&lt;span>四.升级比较容易&amp;nbsp;&lt;/span>&lt;/strong>&lt;br>&lt;span>　　随着网站需求的增大，您可能需要对主机进行升级。这时，只需您提交一下工单，主机商就会帮您自动升级。&amp;nbsp;&lt;/span>&lt;br>&lt;span>选择虚拟主机的缺点：&amp;nbsp;&lt;/span>&lt;br>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;span>1.某些功能会受到限制&amp;nbsp;&lt;/span>&lt;br>&lt;span>　　虚拟主机毕竟是共享一台服务器的资源，所以主机商为了在服务器上挂更多的网站，一定会对流量、资源等作出一些限制，也会对如404页面等等一些功能上作出限制。&amp;nbsp;&lt;/span>&lt;br>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;span>2.网站速度缓慢&amp;nbsp;&lt;/span>&lt;br>&lt;span>　　虚拟主机又称为共享主机，因此在多个网站共同运行时，您网站的速度也会随之下降，进而对SEO优化的一些因素也造成了不利的影响。&amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;span>3.其他网站被攻击时，自己的网站会受到影响&amp;nbsp;&lt;/span>&lt;br>&lt;/p>&lt;p>&lt;span>　　因为是共享同台服务器资源，所以只要其中一个网站受到攻击或者被降权，都会牵连其他的网站。&amp;nbsp;&lt;/span>&lt;br>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;span>4.考虑的比较多&amp;nbsp;&lt;/span>&lt;br>&lt;span>　　建站在选择虚拟主机时，您要明确下主机商所提供的虚拟主机有哪些功能，以防没有自己需要的特定功能。&amp;nbsp;&lt;/span>&lt;br>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;span>以上简单的阐述了虚拟主机的优缺点。要明确知道这些，而且在搭建网站时，仔细分析一下各个主机的优缺点，以期为自己的网站选择一个最合适的主机。&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p>链接:https://mp.weixin.qq.com/s/lTYsRFzu4YfqGsg-GIeLLg&amp;nbsp;&lt;/p>&lt;/div>&lt;/div></description></item><item><title>Web前端知识体系精简</title><link>https://pangyd.com/post/155-web/</link><pubDate>Sun, 05 Nov 2017 19:28:29 +0800</pubDate><guid>https://pangyd.com/post/155-web/</guid><description>&lt;p>&lt;span>Web前端技术由html、CSS和JavaScript三大部分构成，是一个庞大而复杂的技术体系，其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入，然后不断地接触和学习新的知识点，因此对于初学者很难理清楚整个体系的脉络结构。&lt;span>本文将对Web前端知识体系进行简单的梳理&lt;/span>，对应的每个知识点点到为止，不作详细介绍。目的是帮助大家审查自己的知识结构是否完善，如有遗漏或不正确的地方，希望共勉。&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E" data-size="640|360">&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;h3>&lt;span>&lt;span>JAVASCRIPT 篇&lt;/span>&lt;/span>&lt;/h3>&lt;h3>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/h3>&lt;h3>&lt;span>&lt;span>0、基础语法&lt;/span>&lt;/span>&lt;/h3>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>Javascript基础语法包括：变量定义、数据类型、循环、选择、内置对象等。&lt;/span>&lt;/p>&lt;p>&lt;span>数据类型有string,number,boolean,null,undefined,object等。其中，string,number和boolean是基础类型,null和undefined是JS中的两个特殊类型,object是引用类型。 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span>&lt;/p>&lt;p>&lt;span>Javascript可以通过typeof来判断基础数据类型，但不能够准确判断引用类型, 因此需要用到另外一个方法，那就是Object的toString,&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>JS常用的内置对象有Date、Array、JSON,RegExp等。 一般来讲，Date和Array用的最频繁，JSON可以对对象和数组进行序列化和反序列化，还有一个作用就是实现对象的深拷贝。&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>RegExp即正则表达式，是处理字符串的利器。&amp;nbsp;&lt;/span>&lt;/p>&lt;h4>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/h4>&lt;h4>&lt;span>&lt;span>1、函数原型链&lt;/span>&lt;/span>&lt;/h4>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>Javascript虽然没有继承概念，但Javascript在函数Function对象中建立了原型对象prototype，并以Function对象为主线，从上至下，在内部构建了一条原型链。&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>简单来说就是建立了变量查找机制，当访问一个对象的属性时，先查找对象本身是否存在，如果不存在就去该对象所在的原型连上去找，直到Object对象为止，如果都没有找到该属性才会返回undefined。&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>因此我们经常会利用函数的原型机制来实现JS继承。&lt;/span>&lt;/p>&lt;p>&lt;br data-filtered="filtered">&lt;/p>&lt;h4>&lt;span>&lt;span>2、函数作用域&lt;/span>&lt;/span>&lt;/h4>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>函数作用域就是变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。在JS中没有会块级作用域，只有函数作用域，因此JS中还存在着另外一种怪异现象，那就是变量提升。&lt;/span>&lt;/p>&lt;p>&lt;br data-filtered="filtered">&lt;/p>&lt;h4>&lt;span>&lt;span>3、函数指针 this&lt;/span>&lt;/span>&lt;/h4>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>this 存在于函数中，它指向的是该函数在运行时被调用的那个对象。在实际项目中，遇到this的坑比较多，因此需要对this作深入的理解。&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>Function对象还提供了call、apply和bind等方法来改变函数的this指向，其中call和apply主动执行函数，bind一般在事件回调中使用，而call和apply的区别只是参数的传&lt;/span>&lt;/p>&lt;p>&lt;span>递方式不同。&lt;/span>&lt;/p>&lt;h4>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/h4>&lt;h4>&lt;span>&lt;span>4、构造函数 new&lt;/span>&lt;/span>&lt;/h4>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>JS中的函数即可以是构造函数又可以当作普通函数来调用，当使用new来创建对象时，对应的函数就是构造函数，通过对象来调用时就是普通函数。&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>普通函数的创建有：显式声明、匿名定义、new Function() 等三种方式。&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p>&lt;p>&lt;span>当通过new来创建一个新对象时，JS底层将新对象的原型链指向了构造函数的原型对象，于是就在新对象和函数对象之间建立了一条原型链，通过新对象可以访问到函数对象原型prototype中的方法和属性。&lt;/span>&lt;/p>&lt;p>&lt;br data-filtered="filtered">&lt;/p>&lt;h4>&lt;span>&lt;span>5、闭包&lt;/span>&lt;/span>&lt;/h4>&lt;p>&lt;span>&lt;br data-filtered="filtered">&lt;/span>&lt;/p></description></item><item><title>服务端 I/O 性能大比拼：Node、PHP、Java 和 Go</title><link>https://pangyd.com/post/134-i-o-nodephpjava-go/</link><pubDate>Sat, 14 Oct 2017 19:47:46 +0800</pubDate><guid>https://pangyd.com/post/134-i-o-nodephpjava-go/</guid><description>&lt;p>理解应用程序的输入/输出（I/O）模型，意味着其在计划处理负载与残酷的实际使用场景之间的差异。若应用程序比较小，也没有服务于很高的负载，也许它影响甚微。但随着应用程序的负载逐渐上涨，采用错误的I/O模型有可能会让你到处踩坑，伤痕累累。&lt;/p>&lt;p>正如大部分存在多种解决途径的场景一样，重点不在于哪一种途径更好，而是在于理解如何进行权衡。让我们来参观下I/O的景观，看下可以从中窃取点什么。&lt;/p>&lt;p>&lt;img data-src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" class="" data-ratio="1" data-w="1280" data-type="jpeg" src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" data-fail="0">&lt;/p>&lt;p>在这篇文章，我们将会结合Apache分别比较Node，Java，Go，和PHP，讨论这些不同的语言如何对他们的I/O进行建模，各个模型的优点和缺点，并得出一些初步基准的结论。如果关心你下一个Web应用的I/O性能，那你就找对文章了。&lt;/p>&lt;h2>I/O基础知识：快速回顾&lt;/h2>&lt;p>为了理解与I/O密切相关的因素，必须先来回顾在操作系统底层的概念。虽然不会直接处理这些概念的大部分，但通过应用程序的运行时环境你一直在间接地处理他们。而关键在于细节。&lt;/p>&lt;h3>系统调用&lt;/h3>&lt;p>首先，我们有系统调用，它可以描述成这样：&lt;/p>&lt;ul class="list-paddingleft-2">&lt;li>&lt;p>你的程序（在“用户区域”，正如他们所说的）必须让操作系统内核在它自身执行I/O操作。&lt;/p>&lt;/li>&lt;li>&lt;p>“系统调用”（syscall）意味着你的程序要求内核做某事。不同的操作系统，实现系统调用的细节有所不同，但基本的概念是一样的。这将会有一些特定的指令，把控制权从你的程序转交到内核（类似函数调用但有一些专门用于处理这种场景的特殊sauce）。通常来说，系统调用是阻塞的，意味着你的程序需要等待内核返回到你的代码。&lt;/p>&lt;/li>&lt;li>&lt;p>内核在我们所说的物理设备（硬盘、网卡等）上执行底层的I/O操作，并回复给系统调用。在现实世界中，内核可能需要做很多事情才能完成你的请求，包括等待设备准备就绪，更新它的内部状态等，但作为一名应用程序开发人员，你可以不用关心这些。以下是内核的工作情况。&lt;/p>&lt;/li>&lt;/ul>&lt;p>&lt;img data-src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" class="" data-ratio="1" data-w="1280" data-type="jpeg" src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" data-fail="0">&lt;/p>&lt;h3>阻塞调用与非阻塞调用&lt;/h3>&lt;p>好了，我刚刚在上面说系统调用是阻塞的，通常来说这是对的。然而，有些调用被分类为“非阻塞”，意味着内核接收了你的请求后，把它放进了队列或者缓冲的某个地方，然后立即返回而并没有等待实际的I/O调用。所以它只是“阻塞”了一段非常短的时间，短到只是把你的请求入列而已。&lt;/p>&lt;p>这里有一些有助于解释清楚的（Linux系统调用）例子：&lt;code>-read()&lt;/code>是阻塞调用——你传给它一个文件句柄和一个存放所读到数据的缓冲，然后此调用会在当数据好后返回。注意这种方式有着优雅和简单的优点。&lt;code>-epoll_create()&lt;/code>，&lt;code>epoll_ctl()&lt;/code>，和&lt;code>epoll_wait()&lt;/code>这些调用分别是，让你创建一组用于侦听的句柄，从该组添加/删除句柄，和然后直到有活动时才阻塞。这使得你可以通过一个线程有效地控制一系列I/O操作。如果需要这些功能，这非常棒，但也正如你所看到的，使用起来当然也相当复杂。&lt;/p>&lt;p>理解这里分时差异的数量级是很重要的。如果一个CPU内核运行在3GHz，在没有优化的情况下，它每秒执行30亿次循环（或者每纳秒3次循环）。非阻塞系统调用可能需要10纳秒这样数量级的周期才能完成——或者“相对较少的纳秒”。对于正在通过网络接收信息的阻塞调用可能需要更多的时间——例如200毫秒（0.2秒）。例如，假设非阻塞调用消耗了20纳秒，那么阻塞调用消耗了200,000,000纳秒。对于阻塞调用，你的程序多等待了1000万倍的时间。&lt;/p>&lt;p>&lt;img data-src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" class="" data-ratio="1" data-w="1280" data-type="jpeg" src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" data-fail="0">&lt;/p>&lt;p>内核提供了阻塞I/O（“从网络连接中读取并把数据给我”）和非阻塞I/O（“当这些网络连接有新数据时就告诉我”）这两种方法。而使用何种机制，对应调用过程的阻塞时间明显长度不同。&lt;/p>&lt;h3>调度&lt;/h3>&lt;p>接下来第三件关键的事情是，当有大量线程或进程开始阻塞时怎么办。&lt;/p>&lt;p>出于我们的目的，线程和进程之间没有太大的区别。实际上，最显而易见的执行相关的区别是，线程共享相同的内存，而每个进程则拥有他们独自的内存空间，使得分离的进程往往占据了大量的内存。但当我们讨论调度时，它最终可归结为一个事件清单（线程和进程类似），其中每个事件需要在有效的CPU内核上获得一片执行时间。如果你有300个线程正在运行并且运行在8核上，那么你得通过每个内核运行一段很短的时间然后切换到下一个线程的方式，把这些时间划分开来以便每个线程都能获得它的分时。这是通过“上下文切换”来实现的，使得CPU可以从正在运行的某个线程/进程切换到下一个。&lt;/p>&lt;p>这些上下文切换有一定的成本——它们消耗了一些时间。在快的时候，可能少于100纳秒，但是根据实现的细节，处理器速度/架构，CPU缓存等，消耗1000纳秒甚至更长的时间也并不罕见。&lt;/p>&lt;p>线程（或者进程）越多，上下文切换就越多。当我们谈论成千上万的线程，并且每一次切换需要数百纳秒时，速度将会变得非常慢。&lt;/p>&lt;p>然而，非阻塞调用本质上是告诉内核“当你有一些新的数据或者这些连接中的任意一个有事件时才调用我”。这些非阻塞调用设计于高效地处理大量的I/O负载，以及减少上下文切换。&lt;/p>&lt;p>到目前为止你还在看这篇文章吗？因为现在来到了有趣的部分：让我们来看下一些流利的语言如何使用这些工具，并就在易用性和性能之间的权衡作出一些结论……以及其他有趣的点评。&lt;/p>&lt;p>请注意，虽然在这篇文章中展示的示例是琐碎的（并且是不完整的，只是显示了相关部分的代码），但数据库访问，外部缓存系统（memcache等全部）和需要I/O的任何东西，都以执行某些背后的I/O操作而结束，这些和展示的示例一样有着同样的影响。同样地，对于I/O被描述为“阻塞”（PHP，Java）这样的情节，HTTP请求与响应的读取与写入本身是阻塞的调用：再一次，更多隐藏在系统中的I/O及其伴随的性能问题需要考虑。&lt;/p>&lt;p>为项目选择编程语言要考虑的因素有很多。当你只考虑性能时，要考虑的因素甚至有更多。但是，如果你关注的是程序主要受限于I/O，如果I/O性能对于你的项目至关重要，那这些都是你需要了解的。“保持简单”的方法：PHP。&lt;/p>&lt;p>回到90年代的时候，很多人穿着匡威鞋，用Perl写着CGI脚本。随后出现了PHP，很多人喜欢使用它，它使得制作动态网页更为容易。&lt;/p>&lt;p>PHP使用的模型相当简单。虽然有一些变化，但基本上PHP服务器看起来像：&lt;/p>&lt;p>HTTP请求来自用户的浏览器，并且访问了你的Apache网站服务器。Apache为每个请求创建一个单独的进程，通过一些优化来重用它们，以便最大程度地减少其需要执行的次数（创建进程相对来说较慢）。Apache调用PHP并告诉它在磁盘上运行相应的&lt;code>.php&lt;/code>文件。PHP代码执行并做一些阻塞的I/O调用。若在PHP中调用了&lt;code>file_get_contents()&lt;/code>，那在背后它会触发&lt;code>read()&lt;/code>系统调用并等待结果返回。&lt;/p>&lt;p>当然，实际的代码只是简单地嵌在你的页面中，并且操作是阻塞的：&lt;/p>&lt;p>&lt;img data-s="300,640" data-type="png" data-src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" class="" data-ratio="0.45230263157894735" data-w="608" src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" data-fail="0">&lt;/p>&lt;p>关于它如何与系统集成，就像这样：&lt;/p>&lt;p>&lt;img data-src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" class="" data-ratio="1" data-w="1280" data-type="jpeg" src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" data-fail="0">&lt;/p>&lt;p>相当简单：一个请求，一个进程。I/O是阻塞的。优点是什么呢？简单，可行。那缺点是什么呢？同时与20,000个客户端连接，你的服务器就挂了。由于内核提供的用于处理大容量I/O（epoll等）的工具没有被使用，所以这种方法不能很好地扩展。更糟糕的是，为每个请求运行一个单独的过程往往会使用大量的系统资源，尤其是内存，这通常是在这样的场景中遇到的第一件事情。&lt;/p>&lt;p>注意：Ruby使用的方法与PHP非常相似，在广泛而普遍的方式下，我们可以将其视为是相同的。&lt;/p>&lt;h2>多线程的方式：Java&lt;/h2>&lt;p>所以就在你买了你的第一个域名的时候，Java来了，并且在一个句子之后随便说一句“dot com”是很酷的。而Java具有语言内置的多线程（特别是在创建时），这一点非常棒。&lt;/p>&lt;p>大多数Java网站服务器通过为每个进来的请求启动一个新的执行线程，然后在该线程中最终调用作为应用程序开发人员的你所编写的函数。&lt;/p>&lt;p>在Java的Servlet中执行I/O操作，往往看起来像是这样：&lt;/p>&lt;p>&lt;img data-s="300,640" data-type="png" data-src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" class="" data-ratio="0.3900804289544236" data-w="746" src="https://pangyd.com/uploads/2017/10/74c10f869f038762.jpg" data-fail="0">&lt;/p>&lt;p>由于我们上面的&lt;code>doGet&lt;/code>方法对应于一个请求并且在自己的线程中运行，而不是每次请求都对应需要有自己专属内存的单独进程，所以我们会有一个单独的线程。这样会有一些不错的优点，例如可以在线程之间共享状态、共享缓存的数据等，因为它们可以相互访问各自的内存，但是它如何与调度进行交互的影响，仍然与前面PHP例子中所做的内容几乎一模一样。每个请求都会产生一个新的线程，而在这个线程中的各种I/O操作会一直阻塞，直到这个请求被完全处理为止。为了最小化创建和销毁它们的成本，线程会被汇集在一起，但是依然，有成千上万个连接就意味着成千上万个线程，这对于调度器是不利的。&lt;/p></description></item><item><title>404-各种网页状态返回码含义！</title><link>https://pangyd.com/post/107-404/</link><pubDate>Tue, 19 Sep 2017 21:02:11 +0800</pubDate><guid>https://pangyd.com/post/107-404/</guid><description>&lt;p>&lt;span>我们在访问一个网页的时候经常会看到400、404、500这样的错误页面，有时候脑子里会一闪而过，为什么页面上会出现这些数字，它们是什么意思呢？&lt;br>&lt;/span>&lt;/p>&lt;p>&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;h2>&lt;span>&lt;strong>&lt;span>不同的错误页面其实代表不同的含义，今天和大家说说这几个页面的一些情况&lt;/span>&lt;/strong>&lt;span>&lt;strong>&lt;span>。&lt;/span>&lt;/strong>&lt;strong>&lt;span>像&lt;/span>&lt;/strong>&lt;span>400、404、500这样的数字被称为&lt;/span>&lt;span>&lt;strong>&lt;span>状态码。&amp;nbsp;&lt;/span>&lt;/strong>&lt;/span>&lt;/span>&lt;/span>&lt;/h2>&lt;p>&lt;span>&lt;span>&lt;span>&lt;strong>&lt;span>&lt;br>&lt;/span>&lt;/strong>&lt;/span>&lt;/span>&lt;/span>&lt;/p>&lt;h2 style="text-align: center">&lt;strong>&lt;span>&lt;span>HTTP状态码（图一）&lt;/span>&lt;/span>&lt;/strong>&lt;span>&lt;br>&lt;/span>&lt;/h2>&lt;p style="text-align: center">&lt;img data-ratio="1" data-src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpg" data-type="jpeg" data-w="640" title="图5：笑出腹肌的程序猿搞笑趣图" _width="auto" class="" src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpg" data-fail="0">&lt;/p>&lt;p style="text-align: center">&lt;br>&lt;/p>&lt;p>&lt;span>&lt;strong>&lt;span>注释：&lt;/span>&lt;/strong>&lt;/span>&lt;/p>&lt;blockquote>&lt;ul class="list-paddingleft-2">&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>301&lt;/span>&lt;/strong>&lt;span>—永久移动。被请求的资源已被永久移动位置；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>302&lt;/span>&lt;/strong>&lt;span>—请求的资源现在临时从不同的 URI 响应请求；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>305&lt;/span>&lt;/strong>&lt;span>—使用代理。被请求的资源必须通过指定的代理才能被访问；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>307&lt;/span>&lt;/strong>&lt;span>—临时跳转。被请求的资源在临时从不同的URL响应请求；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>400&lt;/span>&lt;/strong>&lt;span>—错误请求；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>402&lt;/span>&lt;/strong>&lt;span>—需要付款。该状态码是为了将来可能的需求而预留的，用于一些数字货币或者是微支付；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>403&lt;/span>&lt;/strong>&lt;span>—禁止访问。服务器已经理解请求，但是拒绝执行它；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>404&lt;/span>&lt;/strong>&lt;span>—找不到对象。请求失败，资源不存在；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>406&lt;/span>&lt;/strong>&lt;span>—不可接受的。请求的资源的内容特性无法满足请求头中的条件，因而无法生成响应实体；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;/ul>&lt;/blockquote>&lt;p>&lt;br>&lt;/p>&lt;p style="text-align: center">&lt;span>&lt;strong>&lt;span>HTTP状态码（图二）&lt;/span>&lt;/strong>&lt;/span>&lt;/p>&lt;p style="text-align: center">&lt;img data-ratio="1" data-src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpg" data-type="jpeg" data-w="640" title="图6：笑出腹肌的程序猿搞笑趣图" _width="auto" class="" src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpg" data-fail="0">&lt;/p>&lt;p style="text-align: center">&lt;br>&lt;/p>&lt;p>&lt;span>&lt;strong>&lt;span>注释：&lt;/span>&lt;/strong>&lt;/span>&lt;/p>&lt;blockquote>&lt;ul class="list-paddingleft-2">&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>408&lt;/span>&lt;/strong>&lt;span>—请求超时；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>409&lt;/span>&lt;/strong>&lt;span>—冲突。由于和被请求的资源的当前状态之间存在冲突，请求无法完成；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>410&lt;/span>&lt;/strong>&lt;span>—遗失的。被请求的资源在服务器上已经不再可用，而且没有任何已知的转发地址；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>413&lt;/span>&lt;/strong>&lt;span>—响应实体太大。服务器拒绝处理当前请求，请求超过服务器所能处理和允许的最大值。&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>417&lt;/span>&lt;/strong>&lt;span>—期望失败。在请求头 Expect 中指定的预期内容无法被服务器满足；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>418&lt;/span>&lt;/strong>&lt;span>—我是一个茶壶。超文本咖啡罐控制协议，但是并没有被实际的HTTP服务器实现；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>420&lt;/span>&lt;/strong>&lt;span>—方法失效。&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>422&lt;/span>&lt;/strong>&lt;span>—不可处理的实体。请求格式正确，但是由于含有语义错误，无法响应；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p>&lt;span>&lt;strong>&lt;span>500&lt;/span>&lt;/strong>&lt;span>—服务器内部错误。服务器遇到了一个未曾预料的状况，导致了它无法完成对请求的处理；&lt;/span>&lt;/span>&lt;/p>&lt;/li>&lt;/ul>&lt;/blockquote>&lt;p>&lt;br>&lt;/p>&lt;p>&lt;span>404 是我们比较常见的错误页面，来看看有哪些有趣的设计~&lt;/span>&lt;/p>&lt;p style="text-align: center">&lt;img data-s="300,640" data-type="png" data-src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpg" class="" data-ratio="0.9108695652173913" data-w="460" _width="61%" src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpg" data-fail="0">&lt;/p>&lt;p style="text-align: center">&lt;img data-s="300,640" data-type="jpeg" data-src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpg" class="" data-ratio="0.7275" data-w="400" src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpg" data-fail="0">&lt;/p></description></item><item><title>Java Web 网站技术架构演化和总结</title><link>https://pangyd.com/post/103-java-web/</link><pubDate>Fri, 15 Sep 2017 20:00:42 +0800</pubDate><guid>https://pangyd.com/post/103-java-web/</guid><description>&lt;p style="text-align: justify">&lt;b>[&lt;a target="_self" href="https://pangyd.com/">分享&lt;/a>]&lt;/b>工作也有几多年了，无论是身边遇到的还是耳间闻到的，多多少少也积攒了自己的一些经验和思考，当然，博主并没有太多接触高大上的分布式架构实践，相对比较零碎，随时补充。&lt;/p>&lt;p style="text-align: justify">&lt;span>俗话说的好，冰冻三尺非一日之寒，滴水穿石非一日之功，罗马也不是一天就建成的，当然对于我们开发人员来说，一个好的架构也不是一蹴而就的。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>初始搭建&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>开始的开始，就是各种框架一搭，然后扔到Tomcat容器中跑就是了，这时候我们的文件，数据库，应用都在一个服务器上。&lt;/span>&lt;/p>&lt;p>&lt;img class="" data-ratio="0.84375" data-src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpeg" data-type="jpeg" data-w="640" height="562" width="666" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E" data-fail="0">&lt;span>服务分离&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>随着系统的的上线，用户量也会逐步上升，很明显一台服务器已经满足不了系统的负载，这时候，我们就要在服务器还没有超载的时候，提前做好准备。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>由于我们是单体架构，优化架构在短时间内是不现实的，增加机器是一个不错的选择。这时候，我们可能要把应用和数据库服务单独部署，如果有条件也可以把文件服务器单独部署。&lt;/span>&lt;/p>&lt;p>&lt;img class="" data-ratio="0.870020964360587" data-src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpeg" data-type="jpeg" data-w="477" height="415" width="477" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E" data-fail="0">&lt;span>反向代理&lt;/span>&lt;/p>&lt;p>&lt;img class="" data-ratio="0.4378531073446328" data-src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpeg" data-type="jpeg" data-w="354" height="155" width="354" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E" data-fail="0">&lt;/p>&lt;p style="text-align: justify">&lt;span>为了提升服务处理能力，我们在Tomcat容器前加一个代理服务器，我一般使用Nginx，当然你如果更熟悉apache也未尝不可。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>用户的请求发送给反向代理，然后反向代理把请求转发到后端的服务器。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>严格意义上来说，Nginx是属于web服务器，一般处理静态html、css、js请求，而Tomcat属于web容器，专门处理JSP请求，当然Tomcat也是支持html的，只是效果没Nginx好而已。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>反向代理的优势，如下：&lt;/span>&lt;/p>&lt;ul class=" list-paddingleft-2">&lt;li>&lt;p style="text-align: justify">&lt;span>隐藏真实后端服务&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p style="text-align: justify">&lt;span>负载均衡集群&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p style="text-align: justify">&lt;span>高可用集群&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p style="text-align: justify">&lt;span>缓存静态内容实现动静分离&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p style="text-align: justify">&lt;span>安全限流&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p style="text-align: justify">&lt;span>静态文件压缩&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p style="text-align: justify">&lt;span>解决多个服务跨域问题&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p style="text-align: justify">&lt;span>合并静态请求(HTTP/2.0后已经被弱化)&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p style="text-align: justify">&lt;span>防火墙&lt;/span>&lt;/p>&lt;/li>&lt;li>&lt;p style="text-align: justify">&lt;span>SSL以及http2&lt;/span>&lt;/p>&lt;/li>&lt;/ul>&lt;h1>&lt;span>动静分离&lt;/span>&lt;/h1>&lt;p>&lt;img class="" data-ratio="0.6956521739130435" data-src="https://pangyd.com/uploads/2017/09/74c10f869f038762.jpeg" data-type="jpeg" data-w="529" height="368" width="529" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120'%3E%3Crect width='480' height='120' fill='%230E1012' stroke='%231B1E22'/%3E%3Ctext x='240' y='66' fill='%235C6069' font-family='monospace' font-size='13' text-anchor='middle'%3E%5B%E5%8E%9F%E5%9B%BE%E5%B7%B2%E5%A4%B1%E6%95%88%5D%3C/text%3E%3C/svg%3E" data-fail="0">&lt;/p></description></item><item><title>网站改版301重定向与快速恢复收录解决方法</title><link>https://pangyd.com/post/94-301/</link><pubDate>Wed, 06 Sep 2017 19:20:43 +0800</pubDate><guid>https://pangyd.com/post/94-301/</guid><description>&lt;p>今天终于趋于稳定，起码博客在百度重新收录让我感到一丝欣慰。谷歌和360在昨天就已经恢复了收录。但目前百度搜索的流量仍是本站最多的流量来源，所以直到百度有了收录我才松了口气。对于看重SEO的人，对收录重视程度不必多说。&lt;div>&lt;br>&lt;/div>&lt;div>　　本次恢复收录统计：百度：2天，谷歌：1天，360 ：1天。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　当然只是有了部分收录，并不是所有页面完全收录转移了。估计要等到所有页面转移，权重转移可能需要2个星期甚至一个月。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　自我感觉还不错，因为我之前百度了一下前辈们是怎么处理这种事情的，发现有的人一个月还没有被收录。所以我感觉自己真的是很幸运。大家这里不用怀疑我新站的收录会不会是百度的正常收录。因为我可以完全肯定是我自己的功劳。下面我会把自己所做的方法完全分享出来，给大家一个借鉴。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　1，&lt;a target="_blank" href="https://pangyd.com/">网站&lt;/a>301重定向。虽然很多朋友都知道什么是301了，但我还是系统的说一下。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div> &lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　页面永久性移走(301重定向)是一种非常重要的“自动转向”技术。网址重定向最为可行的一种办法。当用户或搜索引擎向网站服务 器发出浏览请求时，服务器返回的HTTP数据流中头信息(header)中的状态码的一种，表示本网页永久性转移到另一个地址”。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　这样就明白了，简单看来就是显性的URL转发。实际意义就是告诉搜索引擎这个页面已经永久的被转移到另一个页面了。既然知道了这个301的意义，那如何做301重定向呢?&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　1)，可以在域名解析端设置301重定向。现在一般的域名解析服务商已经提供301重定向的功能，如DNSPOD，但是需要域名转入1个月以后，而且需要审核。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　2)，服务器端301重定向，现在大部分虚拟主机管理面板都提供了这一选项。比如我用的DA。或者一些国内的面板都有。(因为面板不同，具体方法可以留言，我帮助你。或者自行百度。这里就不在叙述。)当然如果你是VPS用户或者服务器用户因为面板自己安装可能就没有这一功能，那么你可以使用方法1或者3。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　IIS重定向的方法：Internet信息服务管理器 -&amp;gt; 虚拟目录 -&amp;gt; 重定向到URL，输入需要转向的目标URL，并选择&amp;quot;资源的永久重定向&amp;quot;。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　3)，代码重定向，这个就是比较通用的了，用代码的方式实现301重定向&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　1.301重定向之ASP&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　2、301重定向之PHP&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　Header( &amp;ldquo;HTTP/1.1 301 Moved Permanently&amp;rdquo; ) ;&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　Header( &amp;ldquo;Location: https://www.&lt;em>&lt;strong>.com&amp;rdquo; );&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　?&amp;gt;&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　3、301重定向之NET&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　还有的虚拟主机自带了配置文件，使用方法如下。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　把下面一段代码 保存为 httpd.ini 放到web里。网址换成自己。实现301跳转.&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　[ISAPI_Rewrite]&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　CacheClockRate 3600&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RepeatLimit 32&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RewriteCond Host: ^&lt;/strong>&lt;/em>.com&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RewriteRule (.&lt;em>) https://www.&lt;/em>&lt;em>&lt;em>.com$1 [RP]&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　下面是.htaccess的代码&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RewriteEngine On&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RewriteCond %{http_host} ^ycyskycom [NC]&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　RewriteRule ^(.&lt;/em>)$ https://www.&lt;/em>**.com/$1 [R=301,L]&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　2，既然做好了网页重定向，那么下一步就是去百度站长平台提交改版规则。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　以下是百度站长平台的改版规则说明及其我网站改版提交的规则截图&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div> &lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　改版范围说明域名改版：会将此站点其子站点下所有的页面进行改版处理。比如当前站点为 &lt;a href="https://baidu.com/">https://baidu.com/&lt;/a>，域名范围的改版会将 &lt;a href="https://baidu.com/">https://baidu.com/&lt;/a>，http://wenku.baidu.com/，http://tieba.baidu.com/ 等站点的所有页面一并做改版处理。目录改版：支持当前站点的目录和子站点的目录，把此目录下的URL做改版处理。比如当前站点是 &lt;a href="https://baidu.com/">https://baidu.com/&lt;/a>，改版范围是 &lt;a href="https://wenku.baidu.com/ac/">https://wenku.baidu.com/ac/&lt;/a>，则会将 &lt;a href="https://wenku.baidu.com/ac/1.html">https://wenku.baidu.com/ac/1.html&lt;/a>，http://wenku.baidu.com/ac/2.html 等URL做改版处理。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　规则提交后，一般48小时内会反馈预计处理时间，每天更新一次处理进度。期间您可以通过以下方法来查看改版处理情况：关注新网站的抓取异常情况，短期内适当提升抓取压力帮助新网站更快抓取;关注新网站的索引量波动，关注网站改版工具显示的已替换链接条数;同时对旧网站的域还需保留一段时间，直到新网站在百度索引和展现效果佳。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　注：在站长平台提交改版规则很重要，如果提交的话，可能收录很快恢复，像我的两天就有了新的收录，如果收录是新站的话，是不可能的，即便有收录，也不会先收录内容页而不收录首页。所以这一部很重要，但需要注意的是，提交之前务必做好301重定向。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　3，向百度提供sitemap，也就是网站结构化地图。因为每个网站系统不同的原因构架也不同，这里也不好说什么，但是百度站长平台提供了Discuz!和Wordpress结构化的插件，可以简易的提交网站sitemap。但也会相应的增加服务器负担。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　注：平常最好也使用，不必301重定向时才使用。(服务器负担问题这里不计算，请自行测试。)&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　4，网站链接&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　这个就不必说太多了，因为平时大家可能做的最多的就是外链与友链。写在301重定向这里的意思就是希望大家尽快把友情链接转移到新域名处，增加新域名的权重，而外链就要重新去发喽。&lt;/div>&lt;div>&lt;br>&lt;/div>&lt;div>　　写到这里，本篇&lt;a target="_blank" href="https://pangyd.com/">文章&lt;/a>就结束了，因本人才疏学浅，写此文章也纯属一时兴起，如有不正确的地方希望予以包含和指正。感谢www.ycysky.com站长投稿!&lt;/div>&lt;/p></description></item><item><title>个人失败的网站运营经历，三年一分钱没赚到</title><link>https://pangyd.com/post/93/</link><pubDate>Tue, 05 Sep 2017 18:10:27 +0800</pubDate><guid>https://pangyd.com/post/93/</guid><description>&lt;p style="text-align: justify">如果是三年前的自己，根本就不会想过三年后会是这个样子——运营三年一分钱都没有赚到。服务器成本、域名成本等硬性成本全部都是自讨腰包。其他人工推广维护根本就无法计算。&lt;/p>&lt;p style="text-align: justify">今天，三年前的续费即将过去到期，开始思考着自己是该继续续费还是放弃。&lt;/p>&lt;p style="text-align: justify">叹屌丝逆袭多么的艰难。一开始想的是多么的美好。“建立一个内容丰富的网站，有图片、文字、聊天、交友。运营一段时间内流量上来了就挂谷歌adsense赚取点费用维持服务器成本。后期通过这个网站盈利，想着日赚XXX的美梦。”但是没有想过结局跟网上吹的那种日赚XXX是多么的天壤之别。&lt;/p>&lt;p style="text-align: center">&lt;img alt="个人失败的网站运营经历，三年一分钱没赚到 好文分享" title="个人失败的网站运营经历，三年一分钱没赚到 好文分享" src="https://pangyd.com/uploads/2017/09/d5731b7a2fec55d4.jpg" width="590" height="417">&lt;/p>&lt;p style="text-align: center">（博文配图，图片与作者本文无关）&lt;/p>&lt;p style="text-align: justify">&lt;strong>第一年：&lt;/strong>&lt;/p>&lt;p style="text-align: justify">挂&lt;a href="https://lusongsong.com/info/post/310.html" target="_blank">adsense&lt;/a>，半年多了还不到100人民币，点击单价越来越低而且要多低就有多低，基本上等于免费挂谷歌的广告。虽然网站流量每天在1K,PV在2K左右，但对于盈利仍旧是无计可施。&lt;a href="https://baidu.com" target="_blank" class="keywordlink">百度&lt;/a>收录有谷歌收录访客有流量但是根本就赚不到钱。看到这样的情况，满腔热情有点被泼冷水的感觉，但是还是坚持，心里想着是网站挂着又没事。&lt;/p>&lt;p style="text-align: justify">&lt;strong>第二年：&lt;/strong>&lt;/p>&lt;p style="text-align: justify">很悲催，谷歌adsense不给任何理由就把我的网站域名给封了。之后我想过去挂百度联盟的广告，很可惜，没有备案网站是放不了百度的联盟广告的。还有其他的联盟比如阿里妈妈，根本就不用去挂的。网站每天没有几千几万流量，挂几十年收入都是0!剩下的其他一些杂乱的广告联盟商，不想去浪费时间，看到他们的广告感觉很低俗、如果网站上面挂了那样的广告给人的感觉就是一个s情h站!都是些卖w哥、壮阳、或者luo聊、同城交友(那种)、游戏弹窗，挂马的广告。如果放这样的广告到自己的网站上，只能是饮鸩止渴。很悲催的，服务器费用仍旧是自己掏腰包。而且已经一种不管他的状态。&lt;/p>&lt;p style="text-align: justify">&lt;strong>第三年：&lt;/strong>&lt;/p>&lt;p style="text-align: justify">很多人都说如果一个网站已经运营了超过2年还是不盈利，那么这个网站可以关闭了。现在想起来，觉得确实是的，2年的时间，已经不是新站了。但是仍旧不是盈利状态，只能说明运营不善。第三年里面很心灰意懒，不想去给网站加什么内容，只是定期备份，检查网站是否可以正常使用是否可以正常运行。访问流量还是那样差，每天才2K IP左右。雪上加霜的是在2012年六七月份的时候，百度k站了，流量直线下降90%。后来虽然收录上回升了一半，有1万多。但是每天来自百度的流量始终都是0，切切实实始终都是0。没有流量，更别提盈利，让自己更觉得心灰意懒。&lt;/p>&lt;p style="text-align: justify">&lt;strong>第四年：今年现在2013。&lt;/strong>&lt;/p>&lt;p style="text-align: justify">静下心来思考，开始反思。想到了自己为什么要做这个网站，觉得有点可笑，一开始想着通过运营网站赚钱，结果却是一直都是自掏腰包赔本。自己该继续运营下去还是直接放弃?不由得想到了网站的最终结果：收点小钱而已，不用自己掏腰包去垫付服务器的成本费和域名的注册费。&lt;/p>&lt;p style="text-align: justify">&lt;strong>自己该继续坚持下去吗?&lt;/strong>&lt;/p>&lt;p style="text-align: justify">跟别人交流了很多次，把网站给了很多人看。&lt;/p>&lt;p style="text-align: justify">很多人打开一瞪眼就说网站太丑了，一个图片都没有，一个动画都没有，不想继续访问下去，想直接关闭。有的人说访问速度太慢了。其实是因为我网站没有beian，只能放在国外，虽然已经算是最快的服务器了，但是访问速度还是很慢。没有办法，自己网站一直都是不盈利不赚钱，哪有那么多钱去升级服务器买好的服务器?也给了一些SEO人士看，都说出来的是网站没有外链，很少。基本上没有在外面宣传推广过一样。因为自己没有那么多精力去推广，只能三天打鱼两天晒网。&lt;/p>&lt;p style="text-align: justify">网站运营的第四年，也许自己已经明白了这个网站为什么一直都是这么没有起色，没有流量也没有收益。看到很多域名注册不到1年的网站流量、收录都异常火爆、权重非常高，让自己觉得奇怪，自己一开始认定的域名越老越权重高，而自己的网站已经运营了三四年了，百度权重还是0、谷歌pr也从原先的2降到了0。&lt;/p>&lt;p style="text-align: justify">回想自己这三年来的付出，经常熬夜通宵达旦的修改网站程序源码，基本上已经把网站源码改得地覆天翻。经常为了调节一个细小的代码优化而废寝忘食、甚至一整天坐在电脑前一动不动，没时间上厕所没时间吃饭睡觉洗漱。等于就是在自己做一个PHP CMS系统。但是网站做好之后就坐等搜索引擎收录，靠天吃饭一样，搜索引擎那天心情不好自己就一个字都别想了。发现很多网站他们的程序根本从来都不改动一下，直接CMS下载来加内容，域名也注册不到1、2年，但是流量收录PR权重非常高、人气非常火爆。对比之下，自己显得多么相形见绌，开始深刻的怀疑一开始自己信定的域名越老人气越旺的谬论。&lt;/p>&lt;p style="text-align: justify">打开自己的网站，发现网站界面确实是那么的丑陋，因为自己不会PS不会图片处理，也不会仿站，所以网站界面一直都是那么的丑陋，以前给别人看自己的网站，也许这是大部分写代码的人的不足之处，不会设计界面，不会美工。&lt;/p>&lt;p style="text-align: justify">&lt;strong>思考、总结了很多，明白了自己失败的所在：&lt;/strong>&lt;/p>&lt;p style="text-align: justify">一网站界面太丑陋，不会美工设计、logo都是非常难看的。&lt;/p>&lt;p style="text-align: justify">二从来没有推广宣传过只是坐等搜索引擎收录，靠天吃饭。&lt;/p>&lt;p style="text-align: justify">三网站服务器太差，舍不得升级好一点的。死做站，只会改程序而其他的根本就从不顾及。&lt;/p>&lt;p style="text-align: justify">四从来没主动去寻找过广告商，日IP 2K其实挂一个其他的广告就可以满足服务器费用了，但是没有去寻找也丢失了盈利的欲望。&lt;/p>&lt;p style="text-align: justify">网站已运营三年，败在了方向上。很少推广……唯一做得最多的就是程序，死改、死改!完全的倾向与技术性。死改程序死改程序，死读书一样。&lt;/p>&lt;p style="text-align: justify">&lt;strong>但是我该继续下去吗?&lt;/strong>&lt;/p>&lt;p style="text-align: justify">很多科学的统计，中国的个人站长至少80%都是不盈利，任何费用都是自己出，其他人工的维护、推广宣传人力精力更不包含在内。另外10%是勉强可以赚得点服务器费用和域名费用。只有剩下10%不到的才收入大于支出，但是剩余不一定抵得上他的其他付出——时间精力人力推广。&lt;/p>&lt;p style="text-align: justify">同时也想到了自己网站，主题主题、发展模式要被复制太容易了。个人站长真的力量太薄弱，有什么变动，就立即会夭折。一切都是迷路。感言：个人建站小打小闹还可以但是真的想通过建个网站来运营就逆袭，只能是想的太离谱。&lt;/p>&lt;p style="text-align: justify">本文作者：&lt;a href="https://www.im286.com/thread-11086188-1-1.html" target="_blank" rel="nofollow">foho&lt;/a>&lt;/p>&lt;p style="text-align: right">来源：&lt;a target="_self" href="https://pangyd.com/">庞玉栋博客&lt;/a> 欢迎分享&lt;/p></description></item><item><title>如何拥有一个属于自己的网站</title><link>https://pangyd.com/post/89/</link><pubDate>Sun, 03 Sep 2017 09:49:38 +0800</pubDate><guid>https://pangyd.com/post/89/</guid><description>&lt;p>&lt;b>&lt;i>前言&lt;/i>&lt;/b>&lt;/p>&lt;p>网站顾名思义就是网上的一个站点 &amp;nbsp;而你打开的页面就是一个站点上的一个一个文件。那就有人问了，我有一台可以上网的计算机可不可以当站点用呢？答案是肯定的 通俗点来讲就跟你平时串门一样 这家门开着你就可以进去 &amp;nbsp; 但是现在计算机日益发展强大 家家都是用路由器 而且网络运营商分给每台计算机的IP都不是固定的 一般都是动态分配的 所以大多数人你即使开启了你电脑的服务器 因为端口 和IP地址问题 &amp;nbsp;也是很麻烦的 &amp;nbsp;因为你电脑连的路由器 你电脑上的ip地址是内网地址也就是192.168.1.1这样的 &amp;nbsp;再说就是你电脑不是专业的服务器 不能满足一个服务器的基本需求 &amp;nbsp;。说了这么多 也就是自己的电脑当服务器是基本上不可取的！&lt;/p>&lt;p>那还有什么办法可以创建一个网站呢？&lt;/p>&lt;p>整体的步骤是：&lt;/p>&lt;p>1：选择服务器和虚拟空间&lt;/p>&lt;p>2：选择合适的域名&lt;/p>&lt;p>3：网站备案&lt;/p>&lt;p>4：上传网页文件&lt;/p>&lt;p>5：完成&lt;/p>&lt;p>&lt;b>&lt;i>1：选择服务器和虚拟空间&lt;/i>&lt;/b>&lt;/p>&lt;p>现在基本上中大型企业基本上都是有自己的服务器 &amp;nbsp;而小企业和个人一般都是采用第三方的虚拟主机和云服务器来进行建站 比如阿里云 腾讯云 百度云等 还有免费的网眼等 &amp;nbsp;我高三的时候用过网眼的免费空间搭建过聊天机器人 &amp;nbsp;心得就是：免费的就是不好用&lt;img src="https://pangyd.com/uploads/2017/08/44ddb3ea33fe01f7.gif" alt="[微笑]">&amp;nbsp; &amp;nbsp;现在好了 &amp;nbsp;什么免费的虚拟空间和云服务器都便宜了 &amp;nbsp;建站的人也多了 &amp;nbsp;。&lt;/p>&lt;p>我接下来主要是讲阿里云虚拟主机建站过程：&lt;/p>&lt;p>闲话少说 &amp;nbsp;现在阿里云有个活动就是新用户可以免费领取半年的云服务器（ps：基本上抢不到），也有个6元一年的虚拟主机活动 &amp;nbsp;建议有一些建站知识的可以买云服务器 &amp;nbsp;没有建站知识的那就买虚拟主机吧！毕竟你买了云服务器也不知道咋用，那些连虚拟主机也不会用的就自己问度娘把，实在不会就点这里：&lt;a target="_blank" href="https://wpa.qq.com/msgrd?v=3&amp;uin=2500918234&amp;site=qq&amp;menu=yes">热心的博主&lt;/a>（ps：&lt;a target="_self" href="https://wanwang.aliyun.com/hosting/free?spm=5176.8112568.483655.5.tuqHEt">这里放上阿里云虚拟主机的6元活动&lt;/a>）&amp;nbsp;&lt;/p>&lt;p>&lt;b>&lt;i>2：选择合适的域名&lt;/i>&lt;/b>&lt;/p>&lt;p>接下来，买完主机了 你就需要你一个自己域名（ps：这里放上：&lt;a target="_blank" href="https://pangyd.com/post/5/">个人博客应该选怎样的域名&lt;/a>）&amp;nbsp;&lt;/p>&lt;p>&lt;b>&lt;i>3：网站备案&lt;/i>&lt;/b>&lt;/p>&lt;p>接下来就是域名备案：&lt;/p>&lt;p>&lt;img src="https://pangyd.com/uploads/2017/09/515b164f020bb08b.png" alt="UXCL~[%`GY]${~@(IB7XUHA.png">&lt;br>&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>2&lt;/p>&lt;p>&lt;img src="https://pangyd.com/uploads/2017/09/a08638e72abe25eb.png" alt="@%(LF{Z]C7$$P8$@6{AE`TC.png">&lt;br>&lt;/p>&lt;p>&lt;img src="https://pangyd.com/uploads/2017/09/0f5a016588300e20.png" alt="YBK}1NQRU8MVHIS(B94I]Y8.png">&lt;br>&lt;/p>&lt;p>&lt;img src="https://pangyd.com/uploads/2017/09/5493d5199098f684.png" alt="G{Z6EW1D]NQLMYN{RAGQ8XE.png">&lt;br>&lt;/p>&lt;p>&lt;img src="https://pangyd.com/uploads/2017/09/e853617ca79bbad1.png" alt="PK(3H{P}~]LYL_[N4XVH9]1.png">&lt;br>&lt;/p>&lt;p>一切跟着流程走 然后提交审核就可以 如果有什么不对 客服会给你打电话 让你修改 基本上就一个工作日时间就可以通过初审&lt;/p>&lt;p>通过初审后 会让你用幕布拍照（ps:第一次备案的还需要买幕布 一般三天左右幕布才会给邮过来 &amp;nbsp;但是有个好消息就是博主这里有块幕布 离的近的小伙伴可以来找我 ）&lt;/p>&lt;p>然后你得下载一个审核单 &amp;nbsp;然后去打印社打印出来 标准就是楼下博主的标准&lt;/p></description></item><item><title>关于网站建设备案的流程与疑问</title><link>https://pangyd.com/post/11/</link><pubDate>Sun, 02 Apr 2017 16:10:46 +0800</pubDate><guid>https://pangyd.com/post/11/</guid><description>&lt;p>&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;建设网站都会遇到一个问题-是否提交备案。关于备案有许多人觉得重要，当然也有许多人觉得不重要（直接选择个国外服务器），在做网站建设服务的时候，也会遇到一些企业主觉得网站备案的周期比较长，耽误网站上线时间，影响推广周期。到底要不要备案？关于备案的流程与疑问，元大人为大家详细分享一下备案的内容。&lt;/p>&lt;p>　　我是建议所有的企业用户都需要备案而个人用户根据网站的目的与规划酌情考虑。&lt;/p>&lt;p>　　一、备案答疑&lt;/p>&lt;p>　　1.为什么说企业网站都要备案？&lt;/p>&lt;p>　　网站备案与否的问题，举一个例子就好比你有一个苹果你是觉得削皮切成块吃，还是直接吃更好呢？因此多给备案留一点时间走正规流程是很有必要的。&lt;/p>&lt;p>　　2.备案的好处？&lt;/p>&lt;p>　　关于备案好处，从网站体验角度和营销转化角度加以解析。&lt;/p>&lt;p>　　（1）网站在国内备案选择的服务器与机房都是在国内，无论哪种情况打开速度都是要比不备案在国外空间要快许多。&lt;/p>&lt;p>　　（2）品牌性-如果网站是招商加盟性网站或者大品牌性网站，客户在与你合作肯定会多角度考虑，如果你的网站连个备案都没有那么客户是否要去思考你对待项目的长期性呢？&lt;/p>&lt;p>　　（3）个人网站必须要有备案才能上百度联盟、360联盟等广告平台。&lt;/p>&lt;p>　　（4）企业完整申请支付宝、银联等在线支付接口时，网站必须要备案号。（注意：经营性网站需要经营性备案。）&lt;/p>&lt;p>　　3.备案与不备案的区别？&lt;/p>&lt;p>　　目前在中国大陆的企业网站、个人网站，（只要你的服务器机房在中国大陆）不管什么网站都是一样，都要求备案，这个备案是指工信部要求，（工信部的网站上大家可以自行去查询相关的法律法规）各省通讯管局审核，然后下发一个备案号，网站的域名（也就是通常意义上的www.你的名称.com类似的网址）才可以接入互联网访问，否则是不可以访问你的网站的。那么这个备案呢，工信部是为了预防网站出现违法等相关问题的时候可以直接找到你网站的负责人。&lt;/p>&lt;p>　　4.备案号是什么呢？&lt;/p>&lt;p>　　所谓的备案号就是网站底部的一个“&lt;span style="text-align: center">豫ICP备16031090号-1&lt;/span>”这样一个文字，大型网站的底部都有。&lt;/p>&lt;p>　　5、如何查到网站是否备案了？&lt;/p>&lt;p>　　很简单；到工信部的网站上去查询www.miibeian.gov.cn，在这个网站首页的右下角可以点击备案查询，然后在打开的页面输入你的域名、或者网址、或者公司备案名称即可查询到。&lt;/p>&lt;p>　　但是由于这个网站系统不怎么好，经常会有查不到的现象，所以：需要你耐心的多输入几次，或者多换几次查询的方式进行。&lt;/p>&lt;p>　　6、备案需要多久？&lt;/p>&lt;p>　　基本上是20个工作日，这个每个地方都不一定，目前：上海3个工作日左右，其他地方请具体咨询您的服务器空间商，一般最长不会超过20个工作日。&lt;/p>&lt;p>　　二、备案都有哪些种类&lt;/p>&lt;p>　　1、个人为主体备案&lt;/p>&lt;p>　　目前个人为主体全国大致要求是不得超过4个网站。&lt;/p>&lt;p>　　2、企业为主体备案&lt;/p>&lt;p>　　目前企业备案大致要求不得超过40个网站，超过后，需要写网站建设计划书。&lt;/p>&lt;p>　　三、备案需要哪些资料？&lt;/p>&lt;p>　　目前每个省要求都不一样，具体可以咨询一下你网站建设服务商的要求，以下内容大致参考：&lt;/p>&lt;p>　　1、个人为主体备案：&lt;/p>&lt;p>　　个人为主体备案资料比较简单：&lt;/p>&lt;p>　　一般需要身份证正反面拍照或者扫描原件图片一张、真实性核验单一张、去服务商指定拍照地点（带服务商指定背景幕布照片）个人真实拍照一张，必须要求去拍照。&lt;/p>&lt;p>　　2、企业为主体备案：&lt;/p>&lt;p>　　企业为主体备案所需要的资料比较多：&lt;/p>&lt;p>　　企业营业执照正本拍照或扫描图片一张&lt;/p>&lt;p>　　企业法人身份证正反面拍照一张&lt;/p></description></item><item><title>本站上线了！</title><link>https://pangyd.com/post/1/</link><pubDate>Thu, 29 Dec 2016 13:49:08 +0800</pubDate><guid>https://pangyd.com/post/1/</guid><description>&lt;p>今年(2016年)年初就打算做一个个人博客了，在年初时候想着才年初，今年还有很长时间，所以就没有着急，一直拖着，这一拖就是半年。&lt;/p>
&lt;p>在五六月分的时候，想着这都半年过去了，博客的事情该提上日程了。于是，我查了想要的域名，看了看服务器，发现阿里云的服务器还是挺贵的。然后说，先做程序(PHP程序猿一只，打算自己开发 CMS)，想着做程序还是要花不少时间的，就这样又拖了两三个月。&lt;/p>
&lt;p>直到九月份中下旬的时候，突然觉得，这再不开工就没时间了呀，因为白天要上班，只能晚上和周末时候有时间来做这个。终于在那一天，就是那一天，我上午选了域名，下午就买了服务器。&lt;/p>
&lt;p>买了域名服务器，域名备案，之后我几乎每天晚上加班两小时攻城(写程序)。到现在，终于告一段落了。&lt;/p>
&lt;p>有时候，做一件事情最开始时候就不能拖延，开始拖延，后面就更拖延，到最后不能在计划的时间内完成。&lt;/p>
&lt;p>总之，不管经历了什么，遇到了什么问题，现在，&lt;strong>本站上线了&lt;/strong>。在开发过程中也遇到了之前没想到的各种小问题，不能说历经磨难，也算小有坎坷。至于开发过程用遇到的各种问题，在之后的文章里再做分享。之后本站的 CMS 也会做分享，希望各位大神多多指教！&lt;/p></description></item></channel></rss>