搭建我的博客网站有不少种框架和模式。对于刚入门的人来讲,对于拥有一个我的网站能够说是毫无头绪。各类诸如Apache,Nginx, Hexo,WordPress,Typecho等等名次让人开始彻底摸不清都是干什么的。php
首先能够肯定的是,在我有限的认知里,一个网站须要有一个服务器,这是确定的,这个服务器首先的有个系统,如Windows,Linux。接下来咱们须要某个软件来管理客户端发过来的请求,管理网站的内容,对外提供HTTP服务,或是其余服务。这就是Web服务器的做用。html
能够确定的是,搭建网站,即最基础的须要服务器(Server)。这里的服务器有硬件层面的,也有软件层面的。
1.有时候 server 表示硬件,也就是一台机器。它还有另外一个名字:「主机」。
2.更多时候,server 表示软件程序,这种程序主要用来对外提供某些服务,好比邮件服务、FTP 服务、数据库服务、网页服务等。前端
做为开发者,咱们说 server 的时候,通常指的后者。一台主机上面能够运行多个这样的程序。nginx
通俗来讲,服务器本质是一个24小时电源开启,执行软件程序的电脑。 你可能会看到一个简单的服务是跑在一台几年前甚至十几年前落满灰尘的老笔记本上的。(固然服务器不做为我的服务的时候服务器固然须要高性能高容量的电脑来运转。)git
按分类来讲哦,咱们说的Apache便是这样的HTTP Web 服务器,一样Nginx也是这样一个东西。github
简单来讲即,程序监听机器的某个端口,一旦外部访问了机器的被监听端口,程序就会返回一些内容(如网页,图片,音视频)。
在不少语言如golang,Python,Node.js,PHP等等均可以以简短的代码构造出一个简单的,Hello World级别HTTP servergolang
按分类来讲,HTTP服务的server分为两类web
这种服务器简单地根据访问路径,返回对应的文件。sql
好比用户访问 http:// 123.123.123.123:8080/a/b/c/d.html,那么这种服务器就会在网站根目录找到 a/b/c/d.html 文件,原样返回给用户。
静态网站特色:数据库
静态网站是最初的建站方式,浏览者所看到的每一个页面是建站者上传到服务器上的一个 html ( htm
)文件,这种网站每增长、删除、修改一个页面,都必须从新对服务器的文件进行一次下载上传。网页内容一经发布到网站服务器上,不管是否有用户访问,每一个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每一个网页都是一个独立的文件;
静态网页的内容相对稳定,所以容易被搜索引擎检索;
静态网页没有数据库的支持,在网站制做和维护方面工做量较大,所以当网站信息量很大时彻底依靠静态网页制做方式比较困难;
静态网页的交互性较差,在功能方面有较大的限制。
优势: 相对于另外两种页面(动态页面和伪静态),速度最快,不须要从数据库里面提取数据,也不会对服务器产生压力。
缺点: 因为数据都是写在文件里,颇有可能会致使文件很是大,占用大量的服务器磁盘空间,每次添加内容都会生成新的文件。更改源代码的话必须所有更改,而不能更改一个地方,全站的静态页面就自动更改了。
这种服务器返回的内容通常不是文件,而是动态生成的字符串(好比从数据库中获取的字符串)。
好比用户访问 http:// http://weibo.com/home,那么这种 http://weibo.com 的服务器则会返回当前用户最新的微博消息。显然每一个用户获得的内容是不同的。
动态网站的概念如今尚未统一标准,但都具有如下几个基本特征:
交互性:网页会根据用户的要求和选择而动态地改变和响应,浏览器做为客户端,成为一个动态交流的桥梁,动态网页的交互性也是从此 Web
发展的潮流。
自动更新:即无须手动更新 HTML 文档,便会自动生成新页面,能够大大节省工做量。
因时因人而变:即当不一样时间、不一样用户访问同一网址时会出现不一样页面。
优势: 占用磁盘空间小,通常几万条数据的网站,文件大小可能只有几M。数据都是从数据库里提取出来,若是须要修改某些数据,可直接修改数据库,全部动态页面就都会自动更新。
缺点: 相对于静态页面而言,访问速度较慢,由于动态页面须要处理成静态内容,才能呈现给用户。动态页面的数据是从数据库里提取出来的,若是访问量大的话,会致使数据库的压力很大。如今动态网站多数都使用了缓存技术,但相对于静态网站而言,服务器的压力比较大,访问的人越多服务器的压力越大。
动态网站在页面里嵌套了程序,这种网站对一些框架相同,更新较快的信息页面进行内容与形式的分离,将信息内容以记录的形式存入了网站的数据库中,以便于网 站各处的调用。这样,咱们看到的一个页面,可能在服务器上不一一对应某个 html 的文件了,网页框架里套了不少数据库里的记录中的内容。此外动态网页是与静态网页相对应的,也就是说,网页 URL 的后缀不是 .htm 、 .html 、 .shtml 、 .xml 等静态网页的常见形式,而是以 .asp 、 .jsp 、 .php 、 .perl 、 .cgi 等形式为后缀。
这里说的动态网页,与网页上的各类动画、滚动字幕等视觉上的 “ 动态效果 ” 没有直接关系,动态网页也能够是纯文字内容的,也能够是包含各类动画的内容,这些只是网页具体内容的表现形式,不管网页是否具备动态效果,采用动态网站技术生成的网页都称为动态网页。
假静态页面,经过将动态页面的URL地址重写,改写成以html、htm等结尾的静态URL地址,实际上仍是动态页面。
优势: 方便搜索引擎进行收录。在SEO方面,伪静态和静态页面的功能是相同的。
缺点: 相对于静态页面和动态页面而言,服务器的性能消耗是最大的。静态页面能够节省服务器的资源消耗,而伪静态是增长服务器消耗,由于Rewrite还须要消耗额外的资源。
Apache
Apache HTTP Server(简称Apache)是Apache软件基金会的一款开放源码的web服务器软件,能够在大多数计算机操做系统中运行,是目前最流行的web服务器端软件之一。apache支持的模块众多,性能稳定,自己只支持静态解析,但能够经过扩展脚本、模块等支持动态页面。常见的网站架构有:apache+php、apache+tomcat等。
Nginx
Nginx是一款开源的轻量级的web服务器/反向代理服务器软件,其特色是占用内存少,并发能力强,也是目前比较流行的web服务器软件之一。静态页面处理能力较强,尤为是反向代理服务表现突出,常被用做负载均衡和代理服务器使用。常见的网站架构有:nginx+php、nginx+tomcat、nginx+apache+php等。
Tomcat
Tomcat是一款开源的Java web应用服务器软件,常被称之为servlet容器,用来处理jsp页面和运行servlet。tomcat技术先进、性能稳定、并且免费,于是深受Java爱好者的喜好并获得了普遍使用。tomcat静态页面处理能力较弱,它的强项是运行Jave Servlet(用Java编写的服务器端程序)。
一、nginx相對於apache的優點:
輕量級,同樣起web 服務,比apache佔用更少的記憶體及資源
抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能
高度模組化的設計,編寫模組相對簡單
社群活躍,各種高效能模組出品迅速啊
apache 相對於nginx 的優點:
rewrite ,比nginx 的rewrite 強大
動態頁面
模組超多,基本想到的均可以找到
少bug ,nginx 的bug 相對較多
超穩定
存在就是理由,通常來說,须要效能的web 服務,用nginx 。若是不须要效能只求穩定,那就apache 吧。後者的各種功能模組實現得比前者,例如ssl 的模組就比前者好,可配置項多。這裡要注意一點,epoll(freebsd 上是 kqueue )網路 IO 模型是nginx 處理效能高的根本理由,但並不是全部的情況下都是epoll 大獲全勝的,若是自己提供靜態服務的就只有寥寥幾個檔案,apache 的select 模型或許比epoll 更高效能。當然,這只是根據網路IO 模型的原理做的一個假設,真正的應用還是须要實測了再說的。
二、做為 Web 伺服器:相比 Apache,Nginx 使用更少的資源,支援更多的併發連線,體現更高的效率,這點使 Nginx 尤为受到虛擬主機提供商的歡迎。在高連線併發的情況下,Nginx是Apache伺服器不錯的替代品: Nginx在美國是作虛擬主機生意的老闆們經常選擇的軟體平臺之一. 能夠支援高達 50,000 個併發連線數的響應, 感謝Nginx為我們選擇了 epoll and kqueue 做為開發模型.
Nginx 做為負載均衡伺服器: Nginx 既能够在內部直接支援 Rails 和 PHP 程式對外進行服務, 也能够支援做為 HTTP代理 伺服器對外進行服務. Nginx採用C進行編寫, 不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好不少.
做為郵件代理伺服器: Nginx 同時也是一個很是優秀的郵件代理伺服器(最先開發這個產品的目的之一也是做為郵件代理伺服器), Last.fm 描述了成功並且美妙的使用經驗.
Nginx 是一個安裝很是的簡單 , 配置檔案很是簡潔(還能夠支援perl語法), Bugs 很是少的伺服器: Nginx 啟動特別容易, 並且幾乎能够作到 7*24不間斷執行,即便執行數個月也不须要从新啟動. 你還能夠不間斷服務的情況下進行軟體版本的升級 .
三、Nginx 配置簡潔, Apache 複雜
Nginx 靜態處理效能比 Apache 高 3倍以上
Apache 對 PHP 支援比較簡單,Nginx 须要配合其余後端用
Apache 的元件比 Nginx 多
現在 Nginx 才是 Web 伺服器的首選
四、最核心的區別在於apache是同步多程序模型,一個連線對應一個程序;nginx是非同步的,多個連線(萬級別)能够對應一個程序
五、nginx處理靜態檔案好,耗費記憶體少.但無疑apache仍然是目前的主流,有不少豐富的特性.因此還须要搭配著來.當然若是能確定nginx就適合需求,那麼使用nginx會是更經濟的方式.
apache有先天不支援多核心處理負載雞肋的缺點,建議使用nginx作前端,後端用apache。大型網站建議用nginx自代的叢集功能
六、從個人過往的使用情況來看,nginx的負載能力比apache高不少。最新的伺服器也改用nginx了。并且nginx改完配置能-t測試一下配置有沒有問題,apache重啟的時候發現配置出錯了,會很崩潰,改的時候都會很是当心翼翼現在看有好多叢集站,前端nginx抗併發,後端 apache叢集,配合的也不錯。
七、nginx處理動態請求是雞肋,通常動態請求要apache去作,nginx只適合靜態和反向。
八、從我個人的經驗來看,nginx是很不錯的前端伺服器,負載效能很好,在老奔上開nginx,用webbench模擬10000個靜態檔案請求绝不吃力。apache對php等語言的支援很好,此外apache有強大的支援網路,發展時間相對nginx更久,
九、 Nginx優於apache的主要兩點:
①Nginx自己就是一個反向代理伺服器
②Nginx支援7層負載均衡;其余的當然,Nginx可能會比 apache支援更高的併發,可是根據NetCraft的統計,2011年4月的統計資料,Apache依然佔有62.71%,而Nginx是 7.35%,所以總得來說,Aapche依然是大部分公司的首先,因為其成熟的技術和開發社群已經也是很是不錯的效能。
十、你對web server的需求決定你的選擇。大部分情況下nginx都優於APACHE,好比說靜態檔案處理、PHP-CGI的支援、反向代理功能、前端Cache、維持連線等等。在 Apache PHP(prefork)模式下,若是PHP處理慢或者前端壓力很大的情況下,很容易出現Apache程序數飆升,從而拒絕服務的現象。
十一、能够看一下nginx lua模組:https://github.com/chaoslaw…apache比nginx多的模組,可直接用lua實現apache是最流行的,why?大多數人懶得更新到nginx或者學新事物
十二、對於nginx,我喜歡它配置檔案寫的很簡潔,正則配置讓不少事情變得簡單執行效率高,佔用資源少,代理功能強大,很適合作前端響應伺服器
1三、Apache在處理動態有優勢,Nginx併發性比較好,CPU記憶體佔用低,若是rewrite頻繁,那還是Apache吧
有了服务器,咱们就能够在内容上作文章了。在学习先后端语言时咱们知道从零开始写一个网站的框架是很困难的,对于初学者而言仅仅在第一个网页上输出Hello World就颇有成就感了。如何像别人一个拥有或简约或高大上或二次元萌豚通常的优雅博客呢?
实际上这也是有框架的,整体来讲网站博客框架即咱们所说的WordPress,Typecho,Hexo。
WordPress是一款我的博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的。用户能够在支持 PHP 和 MySQL数据库的服务器上使用本身的博客。
不过WordPress并非彻底免费的,体验一些完整的功能还需按月购买。
通常选择结合github使用,无需支付服务器成本
相对于 Typecho 和 WordPress 这类动态博客来讲, Hexo 跟他们的最大区别就是静态了(这里的“动态、静态”主要是指其对数据处理的方式,经过数据库来动态的查询、调用、展现的叫“动态”,直接生成纯.html网页文件来供浏览的叫“静态”),从服务器端来讲静态博客凭条的速度更加高效,动态博客平台由于须要数据库、服务器端的脚本语言解析的支撑在速度上相对于静态博客平台来讲天然会低的(就今时今日云技术的趋于成熟和普及,动态和静态这点儿性能上的差别愈来愈微乎其微了,至少对于咱们我的博客来讲是这样的),能够说 Hexo 在这点儿上来讲是完胜 Typecho 和 WordPress 的,可是有利必有弊, Hexo 是基于 Node.js的博客框架,也就是说要 Hexo 须要Node.js环境的支持才能够运行,而Node.js是须要单独在服务器上部署的,也能够理解为是 Hexo 不过多的依赖于常见的 LNMP(Linux+Nginx+Mysql+PHP) , LAMP(Linux+Apache+Mysql+PHP) , LNAMP(Linux+Nginx+Apache+Mysql+PHP) 生产环境,甚至站点的访问只须要有一个“托管”的平台便可。能够说这方面看性价比作到了极致,一个域名+一个免费托管平台就能够搭建一个博客网站了。什么服务器版本、CPU高低、内存多少、带宽多少啥的都是浮云。
Hexo 的性价比极致优点是最明显的,手里有个域名就能够有个博客网站了,这个优点是任何博客平台(框架)都不具有的,至于说 Hexo 的速度,这个只能说跟静态网页文件托管的第三方平台有关系。不过 Hexo 也有其“弊端”的,那就是通用性比较差,毕竟涉及服务器的一系列部署不是每一个人均可以胜任的,再加上托管到第三方平台的过程也不是全部人均可以熟练掌握的,甚至不少人都不知道 GitHub、扣钉 Coding 是干啥的,这个“门槛”能够说阻挡了不少人,若是你自己就是个技术宅甚至程序猿、攻城狮一类的那么天然知道 GitHub、扣钉 Coding 这类“同性交友社区”是干啥的,这个“门槛”天然也就不是啥问题了,那么 Hexo 天然也就是你的首选了。
Typecho 是国内开源基于PHP+数据库的一个动态博客平台,这点儿跟 WordPress 比较相似,甚至部署起来都区别不大,可是 Typecho 相对于 WordPress 来讲更加的轻巧、快速,而且 Typecho 是原生采用 MarkDown 语法解析做为默认博客文章编辑器的,相对于 WordPress 的基于HTML的编辑器更加的先进高效,在兼容性和性能上也提高了不少。能够说 Typecho 是个基于MarkDown的微缩版 WordPress。更重要的是Typecho是免费的。
Typecho 相对于 WordPress 来讲少了那么一丝“商业化”、“标准化”的外表,更加适合专一于原创内容分享的博客站点使用,能够理解为是“小清新”式、我的色彩比较浓厚的我的博客选择 Typecho 仍是很不错的,不管是网站运营成本仍是内容输出几乎都是以“简约”为主要原则的,性对于 WordPress 站点来讲性价比仍是很是不错的额。
若是选择Typecho的话,强烈推荐付费主题handsome,handsome的社区里汇集了大量优秀精美的博客https://handsome.ihewro.com/forum/index.html
总而言之,不管是WordPress,Typecho仍是Hexo在外表上都有高度定制化的漂亮主题界面,在外观上只要细心调教,总能变成本身喜欢的样式。
而对于初学者而言,仅仅是为了记录生活,写文章,作简单的静态网页固然更加省事,Hexo的免费与轻量,小清新的风格会更加适合。若是一样是由于免费但追求更多的功能,Typecho会更符合你的口味。
若是有兴趣的话能够到这里看一下你们调教的博客,或者是各类博客的使用感想https://yq.aliyun.com/roundtable/493552
实际上,在拥有一台服务器,web服务器程序,以及一个适合本身的博客框架后,就已经具有搭建一个我的博客的所有材料了。固然若是须要更加深度的我的定制化,也能够为本身申请专属域名,没有可用的硬件资源,也能够购买阿里云,腾讯云,或是国外的VPS计算资源。
当你有一个本身的网站后,发布什么有趣的内容来吸引阅读量,就是你大展身手的时候了。
在之后的内容中将介绍如何实际搭建我的博客,有方便快捷的静态博客Hexo,也有须要稍微折腾但颇有意思的Typecho,感兴趣的同窗能够持续关注哦~