歡迎光臨
每天分享高質量文章

十分鐘學技術系列 | Nginx從入門到上線

前言

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

基礎知識

Nginx由於使用了 epoll模型,要求linux的核心必須在2.6以上。要瞭解epoll模型,可以看看知乎上的這篇文章:IO多路復用與 select,poll與epoll的關係。

使用 uname -a 檢視Linux 核心版本,如下是Centos 6.5的顯示:

下載

Nginx 的官網的下載地址:http://nginx.org/en/download.html。
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中讀取指令,安裝到指定的位置。

最簡單的編譯安裝 Nginx

 

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的歡迎頁面。

nginx配置

在/usr/local/nginx/conf(預設配置)中,有一個nginx.conf檔案。nginx.conf的程式碼是這樣的:

刪掉不必要的檔案,基本檔案型別是這個樣子:

註意到最頂上的日誌配置嗎?在頂部設定的配置全域性生效。但是子模組可以改寫它。頂部日誌配置:

假設開發人員改變了nginx.conf配置,測試nginx.conf是否合法:

nginx配置檔案架構的圖

 

 

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

###https

在編譯階段需要附帶編譯上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秒傳回一次了。

實體配置

作者:徐家三少

來源:https://juejin.im/post/58846fceb123db7389d2b70e

    贊(0)

    分享創造快樂