如何快速學習網站基本搭建和服務器環境配置(LAMP/LNMP/Tomcat)?

一、基本概念

實驗1: 在阿里雲上部署Tomcat服務器 點擊詳情

業務背景

Tomcat爲網站的服務器,每個網站在後面都有一個服務器來解析那個網頁,Tomcat 對於 Java 來說它就是一個 Servlet 處理器,支持運行基於 Servlet 的 Java 程序,同時 JSP 本身也是基於 Servlet 的技術,也是支持的,像傳說中的 Spring, Struts, JSF 都是基於 Servlet 的,都可以在 Tomcat 上跑起來。

技術背景

Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。由於有了Sun 的參與和支持,最新的Servlet 和JSP 規範總是能在Tomcat 中得到體現,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 規範。因爲Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛並得到了部分軟件開發商的認可,成爲目前比較流行的Web 應用服務器。

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。

實驗2: 快速搭建和部署LAMP環境 點擊詳情

LAMP是指Linux(操作系統),ApacheHTTP服務器,MySQL(有時也指MariaDB,數據庫軟件)和PHP(有時也指Perl或Python)的第一個字母,一般用來建立web應用平臺。雖然這些開放源代碼程序,本身並不是專門設計成同另幾個程序一起工作的,但由於它們的免費和開源,這個組合開始流行(大多數Linux發行版本捆綁了這些軟件)。當一起使用的時候,它們表現的像一個具有活力的解決方案包。和Java/J2EE架構相比,LAMP具有Web資源豐富、輕量、快速開發等特點,微軟的.NET架構相比,LAMP具有通用、跨平臺、高性能、低價格的優勢,因此LAMP無論是性能、質量還是價格都是企業搭建網站的首選平臺。

Apache是LAMP架構最核心的Web Server,開源、穩定、模塊豐富是Apache的優勢。但Apache的缺點是有些臃腫,內存和CPU開銷大,性能上有損耗,不如一些輕量級的Web服務器(例如nginx)高效,輕量級的Web服務器對於靜態文件的響應能力來說遠高於Apache服務器。Apache做爲Web Server是負載PHP的最佳選擇,如果流量很大的話,可以採用nginx來負載非PHP的Web請求。nginx是一個高性能的HTTP和反向代理服務器,Nginx以它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。Nginx不支持PHP和CGI等動態語言,但支持負載均衡和容錯,可和Apache配合使用,是輕量級的HTTP服務器的首選。

PHP的加速使用eAccelerator加速器,eAccelerator是一個自由開放源碼PHP加速器,優化和動 態內容緩存,提高了性能PHP腳本的緩存性能,使得PHP腳本在編譯的狀態下,對服務器的開銷幾乎完全消除。它還有對腳本起優化作用,以加快其執行效率。 使PHP程序代碼執效率能提高1-10倍。

開源的數據庫中,MySQL在性能、穩定性和功能上是首選,可以達到百萬級別的數據存儲,網站初期可以將MySQL和Web服務器放在一起,但是當訪問量達到一定規模後,應該將MySQL數據庫從Web Server上獨立出來,在單獨的服務器上運行,同時保持Web Server和MySQL服務器的穩定連接。

實驗3: 在阿里雲上部署LNMP 點擊詳情

LNMP簡介

LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站服務器架構。

Linux:是一類Unix計算機操作系統的統稱,是目前最流行的免費操作系統。代表版本有:debian、centos、ubuntu、fedora、gentoo等。

Nginx:是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。

Mysql:是一個小型關係型數據庫管理系統。

PHP:是一種在服務器端執行的嵌入HTML文檔的腳本語言。

這四種軟件均爲免費開源軟件,組合到一起,成爲一個免費、高效、擴展性強的網站服務系統。

Nginx簡介和使用場景

Nginx是俄羅斯人編寫的十分輕量級的HTTP服務器,Nginx,它的發音爲 “engine X”, 是一個高性能的HTTP和反向代理服務器,同時也是一個IMAP/POP3/SMTP 代理服務器.Nginx是由俄羅斯人 Igor Sysoev爲俄羅斯訪問量第二的 Rambler.ru站點開發的,它已經在該站點運行超過三年了。Igor Sysoev在建立的項目時,使用基於BSD許可。

爲什麼Nginx的性能要比Apache高得多?這得益於Nginx使用了最新的epoll(Linux 2.6內核)和kqueue(freebsd)網絡I/O模型,而Apache則使用的是傳統的select模型。目前Linux下能夠承受高併發訪問的 Squid、Memcached都採用的是epoll網絡I/O模型。

處理大量的連接的讀寫,Apache所採用的select網絡I/O模型非常低效。下面用一個比喻來解析Apache採用的select模型和Nginx採用的epoll模型進行之間的區別:假設你在大學讀書,住的宿舍樓有很多間房間,你的朋友要來找你。select版宿管大媽就會帶着你的朋友挨個房間去找,直到找到你爲止。而epoll版 宿管大媽會先記下每位同學的房間號,你的朋友來時,只需告訴你的朋友你住在哪個房間即可,不用親自帶着你的朋友滿大樓找人。如果來了10000個人,都要 找自己住這棟樓的同學時,select版和epoll版宿管大媽,誰的效率更高,不言自明。同理,在高併發服務器中,輪詢I/O是最耗時間的操作之 一,select和epoll的性能誰的性能更高,同樣十分明瞭。

在高併發連接的情況下,Nginx是Apache服務器不錯的替代品。Nginx同時也可以作爲7層負載均衡服務器來使用。Nginx 0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3萬以上的併發連接數,相當於同等環境下Apache的10倍。

需要用到雲服務器的話,可以關注 阿里雲·雲小站

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章