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