共計 3484 個字符,預計需要花費 9 分鐘才能閱讀完成。
今天丸趣 TV 小編給大家分享一下 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
/usr/bin/spawn-fcgi 這個文件來管理 fastcgi,它原屬于 lighttpd 這個包里面,但 9.10 后,spawn-fcgi
被分離出來單獨成包。
(1)使用 apt-get 在線安裝命令如下:
$sudo apt-get install spawn-fcgi
(2)源代碼安裝如下,下載地址為:
解壓縮以后,進入目錄下執行如下安裝命令:
$./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)源代碼安裝
下載地址:
我這里下載的是 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-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 啟動出現錯誤時,查看 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]
}
以上就是“Ubuntu 下 Nginx 如何安裝與配置”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,丸趣 TV 小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注丸趣 TV 行業資訊頻道。