Nginx 配置簡述

發表於2016-11-23

不論是本地開發,還是遠端到 Server 開發,還是給提供 demo 給人看效果,我們時常需要對 Nginx 做配置,Nginx 的配置項相當多,如果考慮效能配置起來會比較麻煩。不過,我們往往只是需要一個靜態 Server,或者一個反向代理 Server,這對 Nginx 來說小菜一碟。

本文將給大家介紹 Nginx 配置的基本知識,不想細看的同學可以直接跳到最後一個例子。

Nginx

簡介

Nginx 的安裝就不解釋了,方便起見,建議在各平臺可以直接執行對應安裝命令:

一般可以在 /etc/nginx/nginx.conf 中配置,啟動引數為:

-s,signal,意思就是向 nginx 傳送 start|reload|stop 命令,還是很好理解的。先看一個最簡單的 nginx.conf 配置:

啟動後,訪問 htttp://127.0.0.1:8888 ,如果 /home/barret/test/ 下有 index.html 檔案就會展示 index.html 的內容,否則返回 404

Nginx 配置一個 Web 伺服器

以下對配置 Web 伺服器的引數做簡單說明,包括如何配置埠、域名,如何處理請求,如何響應請求。

1、 虛擬主機和請求的分發

域名和埠的配置

主機名配置

URI 匹配

2、 檔案路徑的定義

根目錄設定

別名設定

首頁設定

重定向頁面設定

try_files 設定

Nginx 配置反向代理伺服器

反向代理(reserve proxy)方式是指用代理伺服器來接受 Internet 上的連線請求,然後將請求轉發給內部網路中的上游伺服器,並將上游伺服器上得到的結果返回給 Internet 上請求連線的客戶端,此時代理伺服器對外的表現就是一個 Web 伺服器。

Nginx 具備超強的高併發高負載能力,一般會作為前端的伺服器直接向客戶端提供靜態檔案服務;而業務一般還包含一些業務邏輯需要 Apache、Tomcat 等伺服器來處理,故通常 Nginx 對外表現即為靜態 Web 伺服器也是反向代理伺服器。

缺點是增加了一次請求的處理時間,優點是降低了上游伺服器的負載,儘量將壓力放在 Nginx 伺服器上。

1、負載均衡配置

upstream,定義一個上游伺服器叢集

2、反向代理

proxy_pass 將請求轉發到有處理能力的端上,預設不會轉發請求中的 Host 頭部

一個簡單的例子,Node.js

一個十分常見的需求:處理請求,如果是靜態檔案,Nginx 直接返回,否則交給 Node 伺服器處理。首先建立了一個 Node 伺服器:

任何請求過來都返回 hello world,簡版的 Nginx 配置如下,

首先 try_files,嘗試直接匹配檔案;沒找到就匹配靜態資源;還沒找到就交給 Node 處理;否則就返回 4xx/5xx 的狀態碼。

小結

本文內容為閱讀《深入理解 Nginx 模組開發和架構解析》時做的一點筆記,以前配置 Nginx 伺服器總是得上網找答案,現在把這些項都理解並記到腦子裡了,還是擔心忘記,部落格稍作記錄。

十分建議讀者邊閱讀邊動手嘗試,利用 nginx -t 測試語法,遇到問題就 Google 搜尋下,上手會很快。後續有空會詳細介紹 Nginx 運維知識。