1. 程式人生 > >Linux培訓:Nginx從入門到上線

Linux培訓:Nginx從入門到上線

usr roc 目前 file tex -o docs size 生產

前言

由於×××小程序要使用Https,但是又不能修改已有線上的配置。所以最簡單的方法就是使用nginx轉發,在nginx上使用https,然後再轉發到內部服務器。Nginx由於其優良的性能。一臺4核16GB的內存完全可以支撐日均百萬pv級別的訪問。

基礎

Nginx由於使用了 epoll模型,要求linux的內核必須在2.6以上。

使用 uname -a 查看Linux 內核版本,如下是Centos 6.5的顯示:
技術分享圖片

下載

Nginx官網提供了三個類型的版本:

Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以說是開發版

Stable version:最新穩定版,生產環境上建議使用的版本

Legacy versions:遺留的老版本的穩定版

編譯

nginx依賴以下模塊:

gzip模塊需要 zlib 庫 及其開發環境

rewrite模塊需要 pcre 庫及開發環境

ssl 功能需要openssl庫及開發環境以及 yum install -y gcc-c++ 環境。

以gzip 模塊為例,查看以下模塊是否安裝:
技術分享圖片

如果沒有安裝,那麽就 yum install zlib zlib-devel。

make是用來編譯的,它從Makefile中讀取指令,然後編譯。make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。

安裝

tar zxvf nginx-1.10.2.tar.gz

解壓以後進入到
技術分享圖片

./configure 是用來檢查本機的的安裝環境。在configure階段結束以後,將會出現如下信息:
技術分享圖片

可以看到默認的安裝目錄以及一些基本的配置。

啟動

nginx默認采用80端口,在直接啟動nginx之前,先檢查80端口是否被占用,使用fuser -n tcp 80或者netstat -pan | grep :80查看80端口是否被占用。這裏假設沒有被占用,然後進入 /usr/local/nginx(上文提到的默認安裝目錄)目錄:
技術分享圖片

訪問:http://ip:80/就可以看到nginx的歡迎頁面。

配置

在/usr/local/nginx/conf(默認配置)中,有一個nginx.conf文件。nginx.conf的代碼是這樣的:

技術分享圖片

刪掉不必要的文件,基本文件類型是這個樣子:
技術分享圖片

註意到最頂上的日誌配置嗎?在頂部設置的配置全局生效。但是子模塊可以覆蓋它。頂部日誌配置:
技術分享圖片

假設開發人員改變了nginx.conf配置,測試nginx.conf是否合法:
技術分享圖片

nginx配置文件架構的圖
技術分享圖片

這裏有詳細的配置:http://www.cszhi.com/20120513/nginx_nginx-conf.html

在編譯階段需要附帶編譯上ssl模塊:./configure --with-http_ssl_module

限流

http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
技術分享圖片

註意在Http中配置以後需要在server中引入。

burst一秒中可以訪問的數據量。burst相當於一個授權令×××,每秒中每次查詢,當前burst-1,查詢結束,burst+1;

如果burst為0時,訪問不了。
技術分享圖片

可以看到,基本上是1秒返回一次了。

實例
技術分享圖片

閱讀推薦:Linux培訓(www.runtimewh.com)

Linux培訓:Nginx從入門到上線