搭建我的博客①:基礎知識

搭建我的博客網站有不少種框架和模式。對於剛入門的人來講,對於擁有一個我的網站能夠說是毫無頭緒。各類諸如Apache,Nginx, Hexo,WordPress,Typecho等等名次讓人開始徹底摸不清都是幹什麼的。php

什麼是Web服務器?

首先能夠肯定的是,在我有限的認知裏,一個網站須要有一個服務器,這是確定的,這個服務器首先的有個系統,如Windows,Linux。接下來咱們須要某個軟件來管理客戶端發過來的請求,管理網站的內容,對外提供HTTP服務,或是其餘服務。這就是Web服務器的做用。html

能夠確定的是,搭建網站,即最基礎的須要服務器(Server)。這裏的服務器有硬件層面的,也有軟件層面的。
1.有時候 server 表示硬件,也就是一臺機器。它還有另外一個名字:「主機」。
2.更多時候,server 表示軟件程序,這種程序主要用來對外提供某些服務,好比郵件服務、FTP 服務、數據庫服務、網頁服務等。前端

做爲開發者,咱們說 server 的時候,通常指的後者。一臺主機上面能夠運行多個這樣的程序。nginx

通俗來講,服務器本質是一個24小時電源開啓,執行軟件程序的電腦。 你可能會看到一個簡單的服務是跑在一臺幾年前甚至十幾年前落滿灰塵的老筆記本上的。(固然服務器不做爲我的服務的時候服務器固然須要高性能高容量的電腦來運轉。)git

按分類來講哦,咱們說的Apache便是這樣的HTTP Web 服務器,一樣Nginx也是這樣一個東西。在這裏插入圖片描述在這裏插入圖片描述github


什麼是HTTP sever?如何運做?

簡單來講即,程序監聽機器的某個端口,一旦外部訪問了機器的被監聽端口,程序就會返回一些內容(如網頁,圖片,音視頻)。
在不少語言如golang,Python,Node.js,PHP等等均可以以簡短的代碼構造出一個簡單的,Hello World級別HTTP servergolang

按分類來講,HTTP服務的server分爲兩類web

  1. 靜態文件服務器

這種服務器簡單地根據訪問路徑,返回對應的文件。sql

好比用戶訪問 http:// 123.123.123.123:8080/a/b/c/d.html,那麼這種服務器就會在網站根目錄找到 a/b/c/d.html 文件,原樣返回給用戶。
在這裏插入圖片描述
靜態網站特色:數據庫

  • 靜態網站是最初的建站方式,瀏覽者所看到的每一個頁面是建站者上傳到服務器上的一個 html ( htm
    )文件,這種網站每增長、刪除、修改一個頁面,都必須從新對服務器的文件進行一次下載上傳。網頁內容一經發布到網站服務器上,不管是否有用戶訪問,每一個靜態網頁的內容都是保存在網站服務器上的,也就是說,靜態網頁是實實在在保存在服務器上的文件,每一個網頁都是一個獨立的文件;

  • 靜態網頁的內容相對穩定,所以容易被搜索引擎檢索;

  • 靜態網頁沒有數據庫的支持,在網站製做和維護方面工做量較大,所以當網站信息量很大時徹底依靠靜態網頁製做方式比較困難;

  • 靜態網頁的交互性較差,在功能方面有較大的限制。

優勢: 相對於另外兩種頁面(動態頁面和僞靜態),速度最快,不須要從數據庫裏面提取數據,也不會對服務器產生壓力。
缺點: 因爲數據都是寫在文件裏,頗有可能會致使文件很是大,佔用大量的服務器磁盤空間,每次添加內容都會生成新的文件。更改源代碼的話必須所有更改,而不能更改一個地方,全站的靜態頁面就自動更改了。

  1. 動態內容服務器

這種服務器返回的內容通常不是文件,而是動態生成的字符串(好比從數據庫中獲取的字符串)。

好比用戶訪問 http:// http://weibo.com/home,那麼這種 http://weibo.com 的服務器則會返回當前用戶最新的微博消息。顯然每一個用戶獲得的內容是不同的。
沒有數據庫的狀況
有數據庫的狀況
有多個數據庫的狀況
服務器均衡
動態網站的概念如今尚未統一標準,但都具有如下幾個基本特徵:

  • 交互性:網頁會根據用戶的要求和選擇而動態地改變和響應,瀏覽器做爲客戶端,成爲一個動態交流的橋樑,動態網頁的交互性也是從此 Web
    發展的潮流。

  • 自動更新:即無須手動更新 HTML 文檔,便會自動生成新頁面,能夠大大節省工做量。
    因時因人而變:即當不一樣時間、不一樣用戶訪問同一網址時會出現不一樣頁面。

優勢: 佔用磁盤空間小,通常幾萬條數據的網站,文件大小可能只有幾M。數據都是從數據庫裏提取出來,若是須要修改某些數據,可直接修改數據庫,全部動態頁面就都會自動更新。
缺點: 相對於靜態頁面而言,訪問速度較慢,由於動態頁面須要處理成靜態內容,才能呈現給用戶。動態頁面的數據是從數據庫裏提取出來的,若是訪問量大的話,會致使數據庫的壓力很大。如今動態網站多數都使用了緩存技術,但相對於靜態網站而言,服務器的壓力比較大,訪問的人越多服務器的壓力越大。

動態網站在頁面裏嵌套了程序,這種網站對一些框架相同,更新較快的信息頁面進行內容與形式的分離,將信息內容以記錄的形式存入了網站的數據庫中,以便於網 站各處的調用。這樣,咱們看到的一個頁面,可能在服務器上不一一對應某個 html 的文件了,網頁框架裏套了不少數據庫裏的記錄中的內容。此外動態網頁是與靜態網頁相對應的,也就是說,網頁 URL 的後綴不是 .htm 、 .html 、 .shtml 、 .xml 等靜態網頁的常見形式,而是以 .asp 、 .jsp 、 .php 、 .perl 、 .cgi 等形式爲後綴。

這裏說的動態網頁,與網頁上的各類動畫、滾動字幕等視覺上的 「 動態效果 」 沒有直接關係,動態網頁也能夠是純文字內容的,也能夠是包含各類動畫的內容,這些只是網頁具體內容的表現形式,不管網頁是否具備動態效果,採用動態網站技術生成的網頁都稱爲動態網頁。

  1. 僞靜態

假靜態頁面,經過將動態頁面的URL地址重寫,改寫成以html、htm等結尾的靜態URL地址,實際上仍是動態頁面。

優勢: 方便搜索引擎進行收錄。在SEO方面,僞靜態和靜態頁面的功能是相同的。
缺點: 相對於靜態頁面和動態頁面而言,服務器的性能消耗是最大的。靜態頁面能夠節省服務器的資源消耗,而僞靜態是增長服務器消耗,由於Rewrite還須要消耗額外的資源。


HTTP web服務器
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編寫的服務器端程序)。


Apache與Nginx對比

一、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。

  1. WordPress
    在這裏插入圖片描述
    在這裏插入圖片描述
    WordPress是使用PHP語言開發的博客平臺,用戶能夠在支持PHP和MySQL數據庫的服務器上架設屬於本身的網站。也能夠把 WordPress看成一個內容管理系統(CMS)來使用。

WordPress是一款我的博客系統,並逐步演化成一款內容管理系統軟件,它是使用PHP語言和MySQL數據庫開發的。用戶能夠在支持 PHP 和 MySQL數據庫的服務器上使用本身的博客。

不過WordPress並非徹底免費的,體驗一些完整的功能還需按月購買。

  1. Hexo
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    Hexo 是一個快速、簡潔且高效的博客框架。Hexo 使用 Markdown(或其餘渲染引擎)解析文章,在幾秒內,便可利用靚麗的主題生成靜態網頁。

通常選擇結合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 天然也就是你的首選了。

  1. Typecho

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述
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,感興趣的同窗能夠持續關注哦~

相關文章
相關標籤/搜索