个人认为blog开发中至关重要的是域名的解析
一个个性化域名可以给用户友好的访问方式,如果采用blog.domain.com/x?userid=11111这种方式访问从技术上是最简单的
但是用户很难记住他的一串访问地址
所以个性化域名是一个blog基本的需求
而个性化域名可以是二级域名(xxx.domain.com),三级域名(xxx.blog.domain.com)或者四级域名(blog.domain.com/xxx)
这三种方案都可以,而且各大blog服务提供商都有采用,比如著名的傻b博客提供商博客网(不要怪我骂它,我是它的老员工,真的真的很让人伤心)就采用二级域名
而163等则采用三级域名方案,sina则采用第三种方案
这三种方案各有优势,个人比较偏好后两种,因为第一种会造成用户占用服务提供商未来需要提供服务的域名,造成强制抢回二级域名(博客网就经常干这个事情)
现在绝大部分blog都是采用全部动态的方式,如果有大量资金可以购置服务器,这样当然好,可以给用户实时的数据,带来好的用户体验
但是现在绝大部分blog提供商所能提供的服务器都只有一、两台,却希望能够带来几十、几百万的pv,那只能做静态化,即把文章页做成html或者shtml形式由apache来访问
这样就需要对域名进行解析,以让服务器访问到正确的文件路径
对个性化域名的解析就是重中之重。
据说在windows或者linux操作系统中,某一文件夹下存储的文件或者文件夹的数量是有限制的(我在实际应用中没有遇到过,但理论来说应该这样)
为了避免出现某一文件夹下存储的文件或者文件夹的数量超过系统限制的问题,则需要对文件存储路径进行合理的拆分。
在koook
blog系统中,用户的文件文件夹为按照用户唯一序列号拆分出来的
如某一用户唯一序列号为110011,则其存储文件夹路径为110/110/00/,这样避免了在根路径下文件夹或文件过多的问题。
但在实际使用中发现每一次访问blog,则apache或者java容器都需要到用户中心去取相应的用户唯一序列号来进行拆分,这样造成了运行效率低下。这个问题在我离职前
一直没有得到妥善的解决。这样的方案提高了开发门槛,即必须有linux
下c编程的人配合去开发apache的mode才可以,而且此人必须为资深工程师,懂得多线程开发才可以。
个人认为优化方案为:
1、对apache的mode进行简单开发,使其用正则表达式对个性化域名进行拆分,例如我的blog为http://blog.sina.com.cn/flyduck,那么我的存储地址为/f/l/y/d/u/c/k即可
但弊端为把个性化域名控制死,必须为几个字符,不能多也不能少。这样用户使用不是很自由,但是是最简单的使用办法
2、依然聘请c高手编写多线程共享内存的apache
mode,把用户中心的用户基本信息一次load
到blog服务器中,每次请求apache都从共享内存中读取相应的数据,再按照规则进行拆分。
相对来说第二种是最优方案,但是开发成本也是最高的
分享到:
相关推荐
在互联网中,主域名如example.com之下,可以有多个子域名,如blog.example.com或mail.example.com。这些子域名通常用于区分不同的服务或功能。子域名挖掘就是通过自动化手段找出这些子域名,帮助安全研究人员扩大...
子域名可以用于各种用途,如电子邮件服务、博客、论坛等。在企业网络环境中,子域名可能隐藏着未公开的内部服务,这些服务如果不被妥善管理,可能会成为安全漏洞,让黑客有机可乘。 Layer子域名挖掘机的核心功能是...
芭奇站群营销软件全面支持标题和内容的近义词反义词替换,分词重构,违禁词库屏蔽,内容段落打乱重排,以及文章内容随机插入图片、视频等,能很好的实现标题和内容的伪原创;无论你做几个,几十个甚至几百个站,都不...
1. **Blog**:这可能意味着markentier.tech是一个博客平台,或者至少包含一个博客部分,用于分享信息、文章或技术更新。 2. **Rust**:Rust是一种系统级编程语言,以其安全、并发和高性能著称。在这里,Rust可能被...
22、优化站点设置里面主域名和默认访问协议的提示和操作流程,避免用户设置错误后无法访问 23、将访问方式放在后台站点设置里面 24、幻灯片按钮可以设置为全局按钮 25、slide增加自己的自定义class方便用户引用 26、...
描述中的链接指向了黄轶科在iteye上的博客文章,虽然具体内容未给出,但可以推测这篇文章可能讲解了如何在代码中改变或优化这些层之间的交互,可能是关于源码级别的调整或是工具的使用。 基于这些信息,我们可以...
为了更好地掌握Android Studio,你可以参考官方文档、在线教程、Stack Overflow问答以及各种技术博客。持续学习和实践是提升Android开发技能的关键。 总结,Android Studio的开发环境部署涉及下载安装、配置、创建...
这种系统通常用于博客、论坛、企业网站等,以便用户可以互动并分享观点。这个源码是基于某大佬的表白墙系统进行二次开发的,将原有功能改造成了一个简洁的留言墙。 【描述】:“本系统为某位大佬的表白墙系统二开,...
8. **CNAME文件**: 对于自定义域名,用户需要在根目录下创建一个`CNAME`文件,指定指向GitHub Pages的自定义域名。 9. **404页面**: 一个标准的个人站点通常会有一个自定义的404错误页面,当用户访问不存在的URL时...
【标题】"dnv32.github.io" 是一个个人或者组织在GitHub上托管的静态网页项目,通常这样的项目是用于创建个人网站、博客或者是展示项目的平台。在这个特定的标题下,我们可以推测这是一个基于GitHub Pages服务构建的...
这个网站可能是由 GitHub Pages 服务托管的,这是一个由 GitHub 提供的免费静态网站托管服务,非常适合开发者用来创建个人简历、博客或者项目演示。 **关于 TypeScript:** TypeScript 是一种由 Microsoft 开发的...
6. **GitHub Pages托管**:`rayhanaredux.github.io`的域名格式表明,网站可能托管在GitHub Pages上,这是一个免费的静态网站托管服务,适合个人博客、项目展示等。 7. **SEO优化**:改版可能包括了对搜索引擎优化...
【标题】"LiuDaniu1997.github.io" 暗示这是一个个人网站或者博客,很可能托管在GitHub Pages上。...通过深入学习这些知识点,不仅能够理解并重构这个项目,还能为创建自己的个人站点或博客奠定坚实的基础。
1. **GitHub Pages工作原理**:用户如何创建、上传和发布静态网站到GitHub Pages,以及如何自定义域名和设置CNAME文件以实现自定义URL。 2. **HTML基础知识**:HTML文档的结构,例如`<!DOCTYPE>`声明、`<html>`根...
6. **配置文件**:如`CNAME`文件用于自定义GitHub Pages的域名,`_config.yml`(如果使用Jekyll等静态站点生成器)用于设置网站配置。 7. **其他静态资产**:如字体文件、图标(`.svg`或`.ico`)等。 为了完全理解...
【标题】"aboqasem.dev:正在开发中"揭示了一个个人或团队的开发项目,其网站域名为aboqasem.dev。这个标题暗示我们将会探讨一个基于Web开发的项目,可能是一个个人作品集、博客平台或者任何其他类型的在线服务。...
【描述】"davidmintz.org" 是网站的域名,通常用于存放个人或组织的在线内容。这个描述简洁明了,没有提供具体的技术细节,但我们可以推测这个网站可能是用PHP语言构建的,因为标签中提到了"PHP"。 【标签】"PHP" ...