1. 程式人生 > >Nginx服務與LNMP架構部署

Nginx服務與LNMP架構部署

stub 基於 pos 解壓縮 模塊 zlib 網站 db2 倉庫

Nginx服務與LNMP架構部署

Nginx簡介
在各種網站服務器軟件中,除了Apache HTTP Server外,還有一款輕量級的HTTP服務器軟件-------Nginx ,其穩定,高效的特征逐漸被越來越多的用戶認可。本篇主要學習一下Nginx服務的基本構建,訪問控制方式和虛擬主機的搭建,還有應用廣泛的LNMP架構服務器的部署方式,並對PHP-FPM模塊如何支持PHP語言進行討論。
Nginx專為性能優化而開發,其最知名的優點是它的穩定性和低系統資源消耗,以及對http並發連接的高處理能力(單臺物理服務器可支持30000~50000個並發請求)。正因為如此,大量提供社交網絡、新聞資訊、電子商務及虛擬主機等服務的企業紛紛選擇Nginx來提供Web服務。

構建LNMP平臺就像構建LAMP平臺一樣,也需要Linux服務器、MySQL數據庫和PHP解析環境,區別主要在Nginx和PHP的協作配置上。我們需要源代碼安裝MySQL數據庫,讓Nginx與PHP環境保持一致。還需要安裝PHP解析環境,配置Nginx支持PHP環境.
先掛載鏡像文件,搭建好yum倉庫。如下圖所示:
技術分享圖片
cd /etc/yum.repos.d/
vim abc.repo :
技術分享圖片
Yum list :
技術分享圖片
安裝依賴包 yum -y install pcre-devel zlib-devel gcc gcc-c++ make :
技術分享圖片
接下來創建一個能管理Nginx的用戶。 如下圖所示:
useradd -M -s /sbin/nologin nginx # -M不讓它在本地創建家目錄 -s 不讓它在本地進項shell登錄
技術分享圖片
通過WinSCP工具將宿主機裏的軟件包拖到虛擬機根目錄下。如下圖所示:
技術分享圖片
技術分享圖片
將nginx-1.6這個包減壓到opt下 # tar xzvf /opt/LNMP/nginx-1.6.0.tar.gz -C /opt :
技術分享圖片
技術分享圖片
技術分享圖片
make :
技術分享圖片
make install :
技術分享圖片
到此Nginx已經全部安裝好了。
安裝好之後我們對它要進行管理和控制
[root@Redhat1 nginx-1.6.0]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
技術分享圖片
我們需要用命令killall -1 nginx 和killall -3 nginx來對Nginx進行重啟和停止。我們接下來在/etc/init.d/Nginx下編譯一個腳本便於用server來管理Nginx服務,這樣更方便。
技術分享圖片
寫好之後給這個腳本執行權限:chmod +x /etc/init.d/nginx
技術分享圖片
添加服務項chkconfig --add nginx
開機自啟動 init3 init5
開啟服務service Nginx start
技術分享圖片
接下來配置頁面統計功能:
技術分享圖片
vim nginx.conf :
技術分享圖片
技術分享圖片
用win7作為客戶端進行首頁訪問驗證:
技術分享圖片
切到虛擬目錄status下進行訪問,通過刷新可以看到每次訪問頁面做出的統計:
技術分享圖片
接下來在Nginx服務上配置虛擬主機
繼續修改nginx的配置文件 vim nginx.conf :
技術分享圖片
檢查nginx配置文件是否正確,並安裝DNS服務並修改配置:
技術分享圖片
技術分享圖片
對區域配置文件進行修改 vim /etc/named.rfc1912.zones
技術分享圖片
技術分享圖片
技術分享圖片
接下來帶權限復制一份給accp: cp -p benet.com.zone accp.com.zone
指定nameserver : echo "nameserver 192.168.10.23" > /etc/resolv.conf
然後開啟DNS服務,在本機上用host解析驗證一下兩個虛擬主機:
技術分享圖片
創建站點首頁,通過win7客戶機訪問驗證:
技術分享圖片
技術分享圖片
技術分享圖片
到此,多個虛擬主機訪問結束。
我們還可以通過配置身份驗證進行訪問,還可以基於客戶端控制進行訪問。這裏就不一一做了,下面將這兩種訪問控制的具體操作概述一下:
身份驗證訪問:
htpasswd -c /usr/local/nginx/passwd.db zhangsan
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

location / {
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db;
root html;
index index.html index.htm;
}
基於客戶端控制:
location / {
deny 192.168.100.20;
allow all;
root html;
index index.html index.htm;
}

接下來是我這篇的重頭戲,配置LNMP。
首先需要安裝一個字符終端下屏幕控制的基本庫ncurses ;
yum -y install ncurses-deve
技術分享圖片
接下來解壓縮mysql-5.5.24 這個軟件包到/opt下 # tar xzvf mysql-5.5.24.tar.gz -C /opt
查看MySQL 並安裝其中我們需要用到cmake編譯軟件包:
技術分享圖片
手工編譯安裝MySQL:
技術分享圖片
make:
技術分享圖片
make install :
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
到此MySQL已經安裝完畢。接下來安裝PHP。
首先安裝GD庫及GD庫關聯程序 (GD庫光盤自帶,yum install直接進行安裝) :
技術分享圖片
技術分享圖片
解壓PHP包:
技術分享圖片
查看一下有沒有configure:
技術分享圖片
接下來進行手工編譯安裝PHP:
技術分享圖片
make :
技術分享圖片
make install :
技術分享圖片
為PHP安裝加速器:
解壓 ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz到opt下
cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x
cp ZendGuardLoader.so /usr/local/php5/lib/php
技術分享圖片
配置PHP識別加速器:
技術分享圖片
技術分享圖片
開啟nginx的PHP支持:
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
配置修改完成後啟用,並檢查端口9000有沒有開啟:
技術分享圖片
接下來是讓nginx支持PHP功能:
首先修改配置文件 vi /usr/local/nginx/conf/nginx.conf
技術分享圖片
技術分享圖片
vi /var/www/benet/index.html :
技術分享圖片
然後復制一份到/var/www/benet/index.php
mv /var/www/benet/index.html /var/www/benet/index.php
技術分享圖片
技術分享圖片
到此LNMP的架構已經全部搭建完成,可以在此基礎上安裝第三方的軟件了(論壇等)。

本篇總結:
1.NMP平臺的N表是Nginx,是一款高性能的輕量級Web服務器軟件,在穩定性、並發響應方面表現出色。
2.Nginx內建的訪問統計功能由stub_status模塊提供,需要在編譯時啟用“--with-http_stub_status_module”選項。
3.Nginx頁面訪問安全有基於授權和基於客戶端兩種方式。
4.Nginx虛擬主機搭建可基於IP、域名和端口。
5.Nginx對PHP的支持可以通過兩種方式實現:轉交給其他web服務器和調用本機的php-fpm進程。
6.在LNMP平臺中部署PHP應用時,基本過程與在LAMP平臺中的部署類似。

Nginx服務與LNMP架構部署