Ubuntu中Nginx的安裝與配置

1.Nginx介紹

Nginx是一個非常輕量級的HTTP服務器,Nginx,它的發音為“engine X”, 是一個高性能的HTTP和

反向代理服務器,同時也是一個IMAP/POP3/SMTP 代理服務器。

2.對PHP支持

目前各種web 服務器對PHP的支持一共有三種:

(1)通過web 服務器內置的模塊來實現,例如Apache的mod_php5,類似的Apache內置的mod_perl

可以對perl支持。

(2)通過CGI來實現,這個就好比之前perl的CGI,該種方式的缺點是性能差,因為每次服務器遇到

這些腳本都需要重新啟動腳本解析器來執行腳本然后將結果返回給服務器;

另一方面就是不太安全;該方面幾乎很少使用了。

(3)最新出現一種叫做FastCGI。所謂FastCGI就是對CGI的改進。它一般采用C/S結構,一般腳本處理器

會啟動一個或者多個daemon進程,每次web 服務器遇到腳本的時候,直接交付給FastCGI的進程來執行,然后

將得到的結果(通常為html)返回給瀏覽器。

2.1 Apache+mod_php模式

我們很久一段時間使用經典的Apache+mod_php。

Apache對PHP的支持是通過Apache的模塊來支持的。如果從源代碼編譯安裝PHP的話,如果希望Apache支持

PHP的話,在./configure步驟需要指定--with-apxs2=/usr/local/apache2/bin/apxs 表示告訴編譯器通過

Apache的mod_php5/apxs來提供對PHP5的解析;而且在最后一步make install的時候我們會看到將動態鏈接庫

libphp5.so拷貝到apache2的安裝目錄的modules目錄下,并且還需要在httpd.conf配置文件中添加LoadModule

語句來動態將libphp5.so模塊加載進來,從而實現Apache對php的支持。

2.2 Nginx+FastCGI模式

Nginx完全是輕量級的,必須借助第三方的FastCGI處理器才可以對PHP進行解析,因此其實這樣看來Nginx是

非常靈活的,它可以和任何第三方提供解析的處理器實現連接從而實現對PHP的解析(在nginx.conf中很容易設置)。

Nginx可以使用spwan-fcgi。在早期版本中需要安裝lighttpd,但是在9.10版本以后直接安裝spawn-fcgi就可以。

現在出現了新的第三方的PHP的FastCGI處理器,叫做PHP-FPM,可以了解一下。本文是基于spawn-fcgi實現對

PHP模塊的支持。

2.3?安裝FastCGI

來自 cllgeek 收集

/usr/bin/spawn-fcgi這個文件來管理 FastCGI,它原屬于lighttpd這個包里面,但 9.10 后,spawn-fcgi

被分離出來單獨成包。

(1)使用apt-get在線安裝命令如下:

$sudo apt-get install spawn-fcgi

(2)源代碼安裝如下,下載地址為:

http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz

解壓縮以后,進入目錄下執行如下安裝命令:

$./configure

$make

$make install

安裝之后,spawn-fcgi命令就可以直接使用了,它的可執行文件在/usr/local/bin/spawn-fcgi。

3.Nginx安裝

3.1?安裝Nginx

(1)在線安裝

$sudo apt-get install nginx

Nginx的版本是1.2.1

ubuntu安裝Nginx之后的文件結構大致為:

所有的配置文件都在/etc/nginx下,并且每個虛擬主機已經安排在了/etc/nginx/sites-available下

啟動程序文件在/usr/sbin/nginx

日志放在了/var/log/nginx中,分別是access.log和error.log

并已經在/etc/init.d/下創建了啟動腳本nginx

默認的虛擬主機的目錄設置在了/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/, 一切正常!如果不能訪問,先不要繼續,看看是什么原因,

解決之后再繼續。

如果你的機器同時安裝了Apache,那上面的訪問方式就不能使用了,而且nginx都可能啟動不了,這是

因為它們都是用了80這個端口。我們這里將nginx的端口修改為8080,

這里主要修改nginx的配置文件nginx.conf,將一下這一行

listen 80;

修改為

listen 8080;

然后就可以訪問了,http://localhost:8080/

3.3?安裝PHP和MySQL

$sudo apt-get install php5-cliphp5-cgimysql-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啟動出現錯誤時,查看php-cgi是否安裝,如果么有的話,安裝php5-cgi。

$sudo apt-get install php5-cgi

(3)測試

打開http://localhost/phpinfo.php

4.Nginx配置

Nginx的配置文件是/etc/nginx/nginx.conf,其中設置了一些必要的參數,我們發現其中這樣的語句:

include /etc/nginx/sites-enabled/*

可以看出/etc/nginx/sites-enabled/default文件也是一個核心的配置文件,其中包含了主要的配置信息,

如服務器跟目錄、服務器名稱、location信息和server信息。

對于源代碼安裝的nginx,配置文件為/usr/local/nginx/conf/nginx.conf。

下面主要說明location的匹配規則:

(1)= 前綴的指令嚴格匹配這個查詢。如果找到,停止搜索。

(2)剩下的常規字符串,最長的匹配優先使用。如果這個匹配使用 ^~ 前綴,搜索停止。

(3)正則表達式,按配置文件里的順序,第一個匹配的被使用。

(4)如果第三步產生匹配,則使用這個結果。否則使用第二步的匹配結果。

在location中可以使用常規字符串和正則表達式。

如果使用正則表達式,你必須使用以下規則:

(1)~* 前綴選擇不區分大小寫的匹配

(2)~? 選擇區分大小寫的匹配

例子:

location = / {

# 只匹配 / 查詢。

[ configuration A ]

}

location / {

# 匹配任何查詢,因為所有請求都以 / 開頭。

# 但是正則表達式規則和長的塊規則將被優先和查詢匹配。

[ configuration B ]

}

location ^~ /images/ {

# 匹配任何以 /images/ 開頭的任何查詢并且停止搜索。

# 任何正則表達式將不會被測試。

[ configuration C ]

}

location ~* \.(gif|jpg|jpeg)$ {

# 匹配任何以 gif、jpg 或 jpeg 結尾的請求。

# 然而所有 /images/ 目錄的請求將使用 Configuration C。

[ configuration D ]

}

這里你還要對正則表達式有一定的了解!!!

使用apt-get安裝的nginx配置文件為: /etc/nginx/sites-available/default,可以用sudo vim /etc/nginx/sites-available/default命令打開。看到如:server {

listen 80;

其中,listen 80;指的是監聽80端口。只需修改為listen 8080即可。

說明:修改端口后,在輸入網址時需指定端口號,如localhost:8080,否則顯示錯誤。而默認的80端口在輸入網址時可以省略(往往不加上去)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容