親測LNMP 的總體基本框架服務器的安裝搭建
現在Nginx的功能已經十分完善,多數場合下不需要Nginx+Apache這樣復雜的架構,那麽問題來了,選擇Nginx 還是 Apache?
Apache自1990年發布以來,一直是web服務器市場的王者。Nginx出現較晚,因其在高並發下卓越的表現,最初是作為Apache在高並發情況下的補充,當時Nginx+Apache是流行的架構.
現在Nginx的功能已經十分完善,多數場合下不需要Nginx+Apache這樣復雜的架構,那麽問題來了,選擇Nginx 還是 Apache?
現在Nginx的功能已經十分完善,多數場合下不需要Nginx+Apache這樣復雜的架構,那麽問題來了,選擇Nginx 還是 Apache?
Apache自1990年發布以來,一直是web服務器市場的王者。Nginx出現較晚,因其在高並發下卓越的表現,最初是作為Apache在高並發情況下的補充,當時Nginx+Apache是流行的架構.
現在Nginx的功能已經十分完善,多數場合下不需要Nginx+Apache這樣復雜的架構,那麽問題來了,選擇Nginx 還是 Apache?
a.小巧的LNMP
web歷史上最流行最經典的環境是LAMP(Linux + Apache + Mysql + PHP),至今仍有大量網站采用此架構,Apache默認配置在未優化的情況下比較占用CPU和內存。借助於Nginx的輕量和高性能,LNMP架構只是將LAMP環境中的Apache換成Nginx,於是另一經典LNMP架構就誕生了。LNMP在服務器硬件配置相同時,相對於LAMP會使用更少的CPU和內存,是小型網站,低配服務器,和VPS的福音。LNMP架構後續會有實戰,大家後續會詳細了解到。
b.互補的LNAMP
LNAMP是一種互補型的架構,前面介紹過,Nginx的負載均衡和反向代理配置靈活,並發能力強,處理靜態資源性能強,這些特性十分適合在前端調度。缺點是處理動態資源差一些,這正是Apache的強項,所以動態資源交給Apache處理。此架構充分利用了Nginx和Apache的長處,彌補各自的不足,兼顧動靜態資源的同時又方便了擴展。缺點是配置復雜對服務器硬件配置要求高。
當web應用發展到一定程度時,單臺服務器不足以支撐業務的正常運行,為增大吞吐量往往會使用多臺服務器一起提供服務,如何充分利用多臺服務器的資源,就需要一個’調度員‘,這個調度員要求能高效的接收並分發請求,知道後端的服務器健康狀態,要能方便的擴展和移除,這就是Nginx又一常見應用架構,此架構充分利用了Nginx的反向代理和負載均衡的優勢,Nginx本身不提供web服務,而是在前端接受web請求並分發到後端服務器處理,後端服務器可以是Apache,tomcat,IIS等。
以上三種是比較流行的架構,事實上Nginx的應用場景十分靈活,在高並發的網站裏有著廣泛的應用,大家在以後的學習中可以多關註。
帶領大家安裝好LNMP環境,入門學習nginx,為後面的課程做準備
?安裝nginx
?安裝mysql
?安裝php
什麽是 LNMP?
首先這裏要簡單介紹下 LAMP 和 LNMP。這兩個都是在網站服務器架構中的系統環境。 上節中我們簡單介紹過:
LAMP指的是:Linux+Apache+MySQL+Perl/PHP/Python?LNMP指的是:Linux+Nginx+MySQL+PHP
在 LNMP 中的作用或角色: Linux 是一類 Unix 計算機操作系統的統稱,是目前最流行的免費操作系統。代表版本有:debian、centos、ubuntu、fedora、gentoo 等。LNMP 中以它作為平臺。我們實驗樓的環境本身就是 ubuntu,可直接進行下一步操作。如果想擁有自己的 ubuntu 實驗環境,趕緊動手實現
在 LNMP 中的作用或角色: Linux 是一類 Unix 計算機操作系統的統稱,是目前最流行的免費操作系統。代表版本有:debian、centos、ubuntu、fedora、gentoo 等。LNMP 中以它作為平臺。我們實驗樓的環境本身就是 ubuntu,可直接進行下一步操作。如果想擁有自己的 ubuntu 實驗環境,趕緊動手實現
Nginx 安裝
sudo apt-get update
Sudo apt-get install -y nginx
完成安裝後的測試
所有的啟動配置文件都在/etc/init.d/nginx這個目錄下,所以相關操作都可以在這個文件夾啟動命令 這其實就是一個啟動腳本
sudo /etc/init.d/nginx start 或 sudo service nginx start
啟動完畢後,打開瀏覽器,訪問?http://localhost?一定要刷新以確認
1 .nginx 安裝後的初級配置
sudo vim/etc/nginx/sites-available/default
HP 需要配置?location ~ .php$ {},所以要讓 php 與 nginx 一起工作,就得在這個配置文件中放出這個模塊。
如圖修改(54 行開始)?把 註釋去掉-- vim技巧:ctrl+v進入列編輯,選中要刪除的#,再按d刪除?
緊接著測試配置文件
測試成功以後記得重載配置文件,使配置文件生效
sudo service nginx reload
關於測試的話要等下面的 php 一同配置好後一起測試
2 . 安裝mysql
在 LNMP 中的作用或角色:Mysql 是一個小型關系型數據庫管理系統 mysql 的安裝分為服務端與客戶端
sudo apt-get install mysql-server mysql-client
然後 修改 mysql 的配置文件
sudo vim /etc/mysql/my.cnf
將 bind-address = 127.0.0.1 註釋掉,就可以遠程連接數據庫了
然後mysql 服務重新啟動 sudo service mysql start
在?LNMP?中的作用或角色:nginx?本身不能處理?PHP,它只是個?web?服務器,當接收到請求後,如果是?php?請求,則發給?php?解釋器處理,並把結果返回給客戶端.php-fpm?是一個守護進程(FastCGI?進程管理器)用於替換?PHP FastCGI?的大部分附加功能,對於高負載網站是非常有用的。
sudo apt-get install -y php5-fpm
安裝好以後連同上面的 nginx 一同測試?現在創建一個探針文件保存在 /usr/share/nginx/html 目錄下(這個目錄就是剛剛 nginx 配置文件中 root 目錄),以便測試。
sudo vim /usr/share/nginx/html/phpinfo.php
接下來使用命令啟動 php5-fpm 服務:瀏覽器測試
(1).要想讓 php5 支持 Mysql,還需要安裝一系列的配套模塊。 在剛才打開的網頁中,這是沒有裝模塊的界面,搜索可以看出,裏面沒有任何 mysql 的啟動信息
需要安裝 php5-mysql 模塊
sudo apt-get install php5-mysql
需要安裝 php5-mysql 模塊
然後服務重新啟動:Sudo service php5-fpm restart
安裝好的表現:
改變監聽端口
某些情況下我們需要改變服務器的端口,因為套接字是通過綁定 ip 端口連接的,那就只需要將剛才的 nginx 的?default(所在目錄/etc/nginx/sites-available/)配置中的端口打開,然後改成你想要監聽的端口
這是 nginx 的 default
sudo vim/etc/nginx/sites-available/default
命令重載配置文件使之生效
sudo service nginx reload
接下來重啟 nginx 和 php 就好了
sudo service nginx restart
到這裏 LNMP 的總體基本框架也就搭建好了
親測LNMP 的總體基本框架服務器的安裝搭建