Ubuntu中Nginx的安裝與配置詳細(xì)說明
1.Nginx介紹
Nginx是一個(gè)非常輕量級的HTTP服務(wù)器,Nginx,它的發(fā)音為“engine X”, 是一個(gè)高性能的HTTP和
反向代理服務(wù)器,同時(shí)也是一個(gè)IMAP/POP3/SMTP 代理服務(wù)器。
2.對PHP支持
目前各種web 服務(wù)器對PHP的支持一共有三種:
(1)通過web 服務(wù)器內(nèi)置的模塊來實(shí)現(xiàn),例如Apache的mod_php5,類似的Apache內(nèi)置的mod_perl
可以對perl支持。
(2)通過CGI來實(shí)現(xiàn),這個(gè)就好比之前perl的CGI,該種方式的缺點(diǎn)是性能差,因?yàn)槊看畏?wù)器遇到
這些腳本都需要重新啟動腳本解析器來執(zhí)行腳本然后將結(jié)果返回給服務(wù)器;
另一方面就是不太安全;該方面幾乎很少使用了。
(3)最新出現(xiàn)一種叫做FastCGI。所謂FastCGI就是對CGI的改進(jìn)。它一般采用C/S結(jié)構(gòu),一般腳本處理器
會啟動一個(gè)或者多個(gè)daemon進(jìn)程,每次web 服務(wù)器遇到腳本的時(shí)候,直接交付給FastCGI的進(jìn)程來執(zhí)行,然后
將得到的結(jié)果(通常為html)返回給瀏覽器。
2.1 Apache+mod_php模式
我們很久一段時(shí)間使用經(jīng)典的Apache+mod_php。
Apache對PHP的支持是通過Apache的模塊來支持的。如果從源代碼編譯安裝PHP的話,如果希望Apache支持
PHP的話,在./configure步驟需要指定--with-apxs2=/usr/local/apache2/bin/apxs 表示告訴編譯器通過
Apache的mod_php5/apxs來提供對PHP5的解析;而且在最后一步make install的時(shí)候我們會看到將動態(tài)鏈接庫
libphp5.so拷貝到apache2的安裝目錄的modules目錄下,并且還需要在httpd.conf配置文件中添加LoadModule
語句來動態(tài)將libphp5.so模塊加載進(jìn)來,從而實(shí)現(xiàn)Apache對php的支持。
2.2 Nginx+FastCGI模式
Nginx完全是輕量級的,必須借助第三方的FastCGI處理器才可以對PHP進(jìn)行解析,因此其實(shí)這樣看來Nginx是
非常靈活的,它可以和任何第三方提供解析的處理器實(shí)現(xiàn)連接從而實(shí)現(xiàn)對PHP的解析(在nginx.conf中很容易設(shè)置)。
Nginx可以使用spwan-fcgi。在早期版本中需要安裝lighttpd,但是在9.10版本以后直接安裝spawn-fcgi就可以。
現(xiàn)在出現(xiàn)了新的第三方的PHP的FastCGI處理器,叫做PHP-FPM,可以了解一下。本文是基于spawn-fcgi實(shí)現(xiàn)對
PHP模塊的支持。
2.3 安裝FastCGI
/usr/bin/spawn-fcgi這個(gè)文件來管理 FastCGI,它原屬于lighttpd這個(gè)包里面,但 9.10 后,spawn-fcgi
被分離出來單獨(dú)成包。
(1)使用apt-get在線安裝命令如下:
$sudo apt-get install spawn-fcgi
(2)源代碼安裝如下,下載地址為:
http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
解壓縮以后,進(jìn)入目錄下執(zhí)行如下安裝命令:
$./configure
$make
$make install
安裝之后,spawn-fcgi命令就可以直接使用了,它的可執(zhí)行文件在/usr/local/bin/spawn-fcgi。
3.Nginx安裝
3.1 安裝Nginx
(1)在線安裝
$sudo apt-get install nginx
Nginx的版本是1.2.1
ubuntu安裝Nginx之后的文件結(jié)構(gòu)大致為:
所有的配置文件都在/etc/nginx下,并且每個(gè)虛擬主機(jī)已經(jīng)安排在了/etc/nginx/sites-available下
啟動程序文件在/usr/sbin/nginx
日志放在了/var/log/nginx中,分別是access.log和error.log
并已經(jīng)在/etc/init.d/下創(chuàng)建了啟動腳本nginx
默認(rèn)的虛擬主機(jī)的目錄設(shè)置在了/usr/share/nginx/www
(2)源代碼安裝
下載地址:http://nginx.org/download/
我這里下載的是 nginx-1.3.9.tar.gz,安裝過程很簡單,如下:
$./configure
$make
$make install
安裝成功之后,nginx放置在/usr/local/nginx目錄下,主要的配置文件為conf目錄下的nginx.conf,
nginx的啟動文件在sbin目錄下的nginx文件。
3.2 啟動Nginx
(1)在線安裝的啟動過程
$sudo /etc/init.d/nginx start
(2)源代碼安裝的啟動過程
$cd /usr/local/nginx
$sbin/nginx
然后就可以訪問了,http://localhost/ , 一切正常!如果不能訪問,先不要繼續(xù),看看是什么原因,
解決之后再繼續(xù)。
如果你的機(jī)器同時(shí)安裝了Apache,那上面的訪問方式就不能使用了,而且nginx都可能啟動不了,這是
因?yàn)樗鼈兌际怯昧?0這個(gè)端口。我們這里將nginx的端口修改為8080,
這里主要修改nginx的配置文件nginx.conf,將一下這一行
listen 80;
修改為
listen 8080;
然后就可以訪問了,http://localhost:8080/ 。
3.3 安裝PHP和MySQL
$sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql
3.4 測試Nginx對PHP的支持
(1)重新啟動nginx:
$/etc/init.d/nginx restart
(2)啟動FastCGI:
$spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi
spawn-fcgi啟動出現(xiàn)錯(cuò)誤時(shí),查看php-cgi是否安裝,如果么有的話,安裝php5-cgi。
$sudo apt-get install php5-cgi
(3)測試
打開http://localhost/phpinfo.php
4.Nginx配置
Nginx的配置文件是/etc/nginx/nginx.conf,其中設(shè)置了一些必要的參數(shù),我們發(fā)現(xiàn)其中這樣的語句:
include /etc/nginx/sites-enabled/*
可以看出/etc/nginx/sites-enabled/default文件也是一個(gè)核心的配置文件,其中包含了主要的配置信息,
如服務(wù)器跟目錄、服務(wù)器名稱、location信息和server信息。
對于源代碼安裝的nginx,配置文件為/usr/local/nginx/conf/nginx.conf。
下面主要說明location的匹配規(guī)則:
(1)= 前綴的指令嚴(yán)格匹配這個(gè)查詢。如果找到,停止搜索。
(2)剩下的常規(guī)字符串,最長的匹配優(yōu)先使用。如果這個(gè)匹配使用 ^~ 前綴,搜索停止。
(3)正則表達(dá)式,按配置文件里的順序,第一個(gè)匹配的被使用。
(4)如果第三步產(chǎn)生匹配,則使用這個(gè)結(jié)果。否則使用第二步的匹配結(jié)果。
在location中可以使用常規(guī)字符串和正則表達(dá)式。
如果使用正則表達(dá)式,你必須使用以下規(guī)則:
(1)~* 前綴選擇不區(qū)分大小寫的匹配
(2)~ 選擇區(qū)分大小寫的匹配
例子:
location = / {
# 只匹配 / 查詢。
[ configuration A ]
}
location / {
# 匹配任何查詢,因?yàn)樗姓埱蠖家?/ 開頭。
# 但是正則表達(dá)式規(guī)則和長的塊規(guī)則將被優(yōu)先和查詢匹配。
[ configuration B ]
}
location ^~ /images/ {
# 匹配任何以 /images/ 開頭的任何查詢并且停止搜索。
# 任何正則表達(dá)式將不會被測試。
[ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配任何以 gif、jpg 或 jpeg 結(jié)尾的請求。
# 然而所有 /images/ 目錄的請求將使用 Configuration C。
[ configuration D ]
}
這里你還要對正則表達(dá)式有一定的了解?。?!
相關(guān)文章
詳解Centos7.2安裝Nginx實(shí)現(xiàn)負(fù)載平衡
本篇文章主要介紹了詳解Centos7.2安裝Nginx實(shí)現(xiàn)負(fù)載平衡,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03Linux服務(wù)器如何查看每個(gè)用戶或者當(dāng)前用戶的磁盤占用量及文件同步
這篇文章主要介紹了Linux服務(wù)器如何查看每個(gè)用戶或者當(dāng)前用戶的磁盤占用量及文件同步問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Linux安裝Redis實(shí)現(xiàn)過程及報(bào)錯(cuò)解決方案
這篇文章主要介紹了Linux安裝Redis實(shí)現(xiàn)過程及報(bào)錯(cuò)解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Linux下安裝Python3和django并配置mysql作為django默認(rèn)服務(wù)器方法
下面小編就為大家?guī)硪黄狶inux下安裝Python3和django并配置mysql作為django默認(rèn)服務(wù)器方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10