Nginx安裝和配置

1.Nginx安裝

我使用的環境是64位 Ubuntu 14.04。nginx依賴以下模塊:

l  gzip模塊需要 zlib 庫

l  rewrite模塊需要 pcre 庫

l  ssl 功能需要openssl庫

使用 dpkg --status packname 檢查。

1.1.安裝pcre

1.         獲取pcre編譯安裝包,在http://www.pcre.org/上可以獲取當前最新的版本

2.         解壓縮pcre-xx.tar.gz包。

3.         進入解壓縮目錄,執行./configure。

4.         make & make install

1.2.安裝openssl

1.         獲取openssl編譯安裝包,在http://www.openssl.org/source/上可以獲取當前最新的版本。

2.         解壓縮openssl-xx.tar.gz包。

3.         進入解壓縮目錄,執行./config。

4.         make & make install

1.3.安裝zlib

1.         獲取zlib編譯安裝包,在http://www.zlib.net/上可以獲取當前最新的版本。

2.         解壓縮openssl-xx.tar.gz包。

3.         進入解壓縮目錄,執行./configure。

4.         make & make install

1.4.安裝nginx

1.         獲取nginx,在http://nginx.org/en/download.html上可以獲取當前最新的版本。

2.         解壓縮nginx-xx.tar.gz包。

3.         進入解壓縮目錄,執行./configure

4.         make & make install

若安裝時找不到上述依賴模塊,使用--with-openssl=<openssl_dir>、--with-pcre=<pcre_dir>、--with-zlib=<zlib_dir>指定依賴的模塊目錄。如已安裝過,此處的路徑爲安裝目錄;若未安裝,則此路徑爲編譯安裝包路徑,nginx將執行模塊的默認編譯安裝。

啓動nginx之後,瀏覽器中輸入http://localhost可以驗證是否安裝啓動成功。

2.Nginx配置

安裝完成之後,配置目錄conf下有以下配置文件,過濾掉了xx.default配置:

tyler@ubuntu:/opt/nginx-1.7.7/conf$ tree |grep -v default

.

├── fastcgi.conf

├── fastcgi_params

├── koi-utf

├── koi-win

├── mime.types

├── nginx.conf

├── scgi_params

├── uwsgi_params

└── win-utf

除了nginx.conf,其餘配置文件,一般只需要使用默認提供即可

2.1.nginx.conf

nginx.conf是主配置文件,默認配置去掉註釋之後的內容如下圖所示:

l  worker_process表示工作進程的數量,一般設置爲cpu的核數

l  worker_connections表示每個工作進程的最大連接數

l  server{}塊定義了虛擬主機

    n  listener監聽端口

    n  server_name監聽域名

    n  location{}是用來爲匹配的 URI 進行配置,URI 即語法中的“/uri/”。location  / { }匹配任何查詢,因爲所有請求都以 / 開頭。

            u  root指定對應uri的資源查找路徑,這裏html爲相對路徑,完整路徑爲/opt/ opt/nginx-1.7.7/html/

            u  index指定首頁index文件的名稱,可以配置多個,以空格分開。如有多個,按配置順序查找。

clip_p_w_picpath004

從配置可以看出,nginx監聽了80端口、域名爲localhost、跟路徑爲html文件夾(我的安裝路徑爲/opt/nginx-1.7.7,所以/opt/nginx-1.7.7/html)、默認index文件爲index.htmlindex.htm、服務器錯誤重定向到50x.html頁面。

可以看到/opt/nginx-1.7.7/html/有以下文件:

tyler@ubuntu:/opt/nginx-1.7.7/html$ ls

50x.html  index.html

默認

下面截一段mime.types定義的文件擴展名與文件類型映射關係,完整的請自行查看:

clip_p_w_picpath005

2.3.fastcgi_params

nginx配置Fastcgi解析時會調用fastcgi_params配置文件來傳遞服務器變量,這樣CGI中可以獲取到這些變量的值。默認傳遞以下變量:

clip_p_w_picpath006

這些變量的作用從其命名可以看出。

2.4.fastcgi.conf

對比下fastcgi.conffastcgi_params文件,可以看出只有以下差異:

tyler@ubuntu:/opt/nginx-1.7.7/conf$ diff fastcgi.conf fastcgi_params

2d1

< fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

fastcgi.conf只比fastcgi_params多了一行“fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

原本只有fastcgi_params文件,fastcgi.confnginx 0.8.30 (released: 15th of December 2009)才引入的。主要爲是解決以下問題(參考:http://www.dwz.cn/x3GIJ):

原本Nginx只有fastcgi_params,後來發現很多人在定義SCRIPT_FILENAME時使用了硬編碼的方式。例如,fastcgi_param SCRIPT_FILENAME /var/www/foo$fastcgi_script_name。於是爲了規範用法便引入了fastcgi.conf

不過這樣的話就產生一個疑問:爲什麼一定要引入一個新的配置文件,而不是修改舊的配置文件?這是因爲fastcgi_param指令是數組型的,和普通指令相同的是:內層替換外層;和普通指令不同的是:當在同級多次使用的時候,是新增而不是替換。換句話說,如果在同級定義兩次SCRIPT_FILENAME,那麼它們都會被髮送到後端,這可能會導致一些潛在的問題,爲了避免此類情況,便引入了一個新的配置文件。

因此不再建議大家使用以下方式(搜了一下,網上大量的文章,並且nginx.conf的默認配置也是使用這種方式):

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

而使用最新的方式:

include fastcgi.conf;

2.5.uwsgi_params

fastcgi_params一樣,傳遞哪些服務器變量,只有前綴不一樣,以uwsgi_param開始而非fastcgi_param

2.6.scgi_params

fastcgi_params一樣,傳遞哪些服務器變量,只有前綴不一樣,以uwsgi_param開始而非fastcgi_param

2.7.koi-utfkoi-winwin-utf

這三個文件都是與編碼轉換映射文件,用於在輸出內容到客戶端時,將一種編碼轉換到另一種編碼。

koi-win charset_map  koi8-r < -- > windows-1251

koi-utf charset_map  koi8-r < -- > utf-8

win-utf charset_map  windows-1251 < -- > utf-8

koi8-r斯拉夫文字8位元編碼,供俄語及保加利亞語使用。在Unicode未流行之前,KOI8-R 是最爲廣泛使用的俄語編碼,使用率甚至起ISO/IEC 8859-5還高。這3個文件存在是因爲作者是俄國人的原因。

3.相關鏈接

http://www.pcre.org/

http://www.openssl.org/source/

http://www.zlib.net/

http://nginx.org/

百度百科:http://www.dwz.cn/x32kG

fastcgi.conf vs fastcgi_paramshttp://www.dwz.cn/x3GIJ

作者:吳秦
出處:http://www.cnblogs.com/skynet/
本文基於署名 2.5 中國大陸許可協議發佈,歡迎轉載,演繹或用於商業目的,但是必須保留本文的署名吳秦(包含鏈接).









1.Nginx安裝

1.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文件。

1.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/ 。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章