Nginx專爲性能優化而開發,優勢是它的穩定性和低系統資源消耗,以及對HTTP併發鏈接的高處理能力(單臺服務器可支持30000 – 50000個併發請求php
)html
Nginx和Apache的區別mysql
Nginx:只需一個進程能夠接收多個用戶的鏈接,以線程爲單位(線程包含在進程裏面)節省資源nginx
Apache:一個用戶需一個進程,以進程爲單位web
主要結構:Nginx的基本配置sql
:構建LNMP網站服務器平臺數據庫
實驗要求:vim
1.服務器的ip地址爲192.168.1.1,使用泛域名解析*.benet.comcentos
2.構建LNMP網站服務平臺,並經過腳本實現自動化控制瀏覽器
3.配置虛擬web主機服務,同時支持三個站點:www.benet.com與www.accp.com以及vod.benet.com
一 安裝nginx
1:安裝支持軟件
2.建立運行用戶、組
3.編譯安裝nginx
啓用狀態統計模塊以支持狀態統計,便於查看服務器的鏈接信息
4.添加符號連接,以便經過nginx命令就能夠調用nginx的主程序
[root@centos1nginx-1.6.2]#ln-s/usr/local/nginx/sbin/nginx /usr/local/sbin
2、nginx的運行控制
1.檢查配置文件
2.啓動和中止nginx
3.從新加載nginx
4.退出nginx
3、瞭解nginx的配置文件nginx.conf
nginx.conf文件包含三部分配置,分別是全局配置、I/O事件配置和HTTP配置
1. 全局配置
2. #user nobody; //運行用戶 默認爲nobody
3. worker_processes 1; //工做的進程數量,能夠根據cpu核心總數來指定工做進程數
4. #error_log logs/error.log;//錯誤日誌文件的位置
5. #pid logs/nginx.pid; //PID文件的位置
2.I/O事件配置
events {
use epoll //使用epoll模型
worker_connections 4096;每一個進程處理4096個進程鏈接
}
nginx服務提供的鏈接數爲工做的進程數x每一個進程提供的鏈接數
3.HTTP配置,用於完成web站點的設置
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' //去掉前面的#
'$status $body_bytes_sent "$http_referer" ' //去掉前面的#
'"$http_user_agent""$http_x_forwarded_for"'; //去掉前面的#
access_log logs/access.log main; //去掉前面的#
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location / status{ //訪問位置爲/status
stub_status on;//打開狀態統計功能
access_log off;//關閉此位置的日誌記錄
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
4.修改完配置文件後,從新加載下配置文件
[root@centos1 nginx-1.6.2]# killall -s HUP nginx
5 測試
Active connections :表示當前的活動鏈接數
Server accepts handled requests :表示已經處理的鏈接信息,三個數字依次表示已經處理的鏈接數(1) 成功的TCP握手次數(1) 已經處理的請求次數(1)
4、構建基於域名的虛擬web主機
1.準備網站目錄以及測試文件
2.調整nginx.conf配置文件
虛擬主機配置在server{}區域中,每一個server{}區域表明一個web站點配置,指定各自網站名稱、監聽地址、網站根目錄、訪問日誌等信息,而後從新加載配置
省略部份內容
3從新加載.
4 測試
5、構建LNMP架構及應用部署
1.安裝mysql數據庫(略,直接啓動mysql服務器)
2.安裝php解析環境
說明:較新版本(如5.3)php已經自帶FPM(fastCGI Process Manager FastCGI進程管理器)模塊,用來對php解析實例進行管理、優化解
(1)編譯安裝php
(2)安裝後的調整
3.配置nginx支持php環境
有兩種讓nginx支持php的方法
l 充當中介,將訪問php頁面的web請求轉交給其餘的服務器(lamp)去處理
l 經過使用php的FPM模塊來調用本機的php環境
(1)啓用php-fpm進程
①修改php-fpm.conf配置文件修改相關參數,而後啓動php-fpm進程,php-fpm默認監聽本機的9000端口
Vim Php-fpm.com文件中配置
pid = run/php-fpm.pid //確認pid文件的位置
user = php //運行用戶
group = php//運行組
pm.start_servers = 20//啓動時開啓的進程數
pm.min_spare_servers = 5//最小空閒進程數
pm.max_spare_servers = 35 //最大空閒進程數
pm.max_children = 50//最大子進程數
②啓動php-fpm
(2)配置nginx:徹底支持php解析
說明:不管使用哪種解析方式都須要server中進行配置
[root@centos1 Desktop]# vim /usr/local/nginx/conf/nginx.conf
location ~ \.php$ {//訪問.php頁面的配置段
root /var/www/vod;//php頁面的根目錄
fastcgi_pass 127.0.0.1:9000; //php-fpm監聽地址
astcgi_index index.php;//php首頁名稱
include fastcgi.conf;//fastcgi模塊配置
}
[root@centos1 vod]# killall -s QUIT nginx
[root@centos1 vod]# nginx
(3)php頁面訪問測試
l [root@centos1 vod]# mysqladmin -u root -p passwor'123456'
而後在客戶機使用瀏覽器訪問(在hosts中添加記錄)
六 LNMP平臺的應用--部署天空網絡電影系統
1.下載並部署程序代碼
[root@centos1 ~]# unzip /mnt/SKYUC_3.4.2_for_php5.3.zip -d /usr/src
[root@centos1 ~]# cd /usr/src/SKYUC.v3.4.2.SOURCE/
[root@centos1 SKYUC.v3.4.2.SOURCE]# mv wwwroot/ /var/www/vod/skyuc
[root@centos1 SKYUC.v3.4.2.SOURCE]# cd /var/www/vod/skyuc/
[root@centos1 skyuc]# chown -R php:php admincp/ data/ templates/ upload/
[root@centos1 skyuc]#
2.建立數據庫
爲了下降web應用程序對數據庫的風險,建議設置專用的數據庫以及受權用戶[root@centos1 skyuc]# mysql -u root -p
mysql> create database skyucdb;
mysql> grant all on skyucdb.* to runskyuc@localhost identified by 'sky@uc123';
3.安裝web應用
4.訪問web應用系統