Nginx 極簡掃盲入門

Nginx 是一個高性能的 HTTP 和反向代理 web 服務器,同時也提供了 IMAP/POP3/SMTP 服務。
基本介紹

Nginx 是由伊戈爾·賽索耶夫爲俄羅斯訪問量第二的 Rambler.ru 站點開發的,第一個公開版本 0.1.0 發佈於 2004 年 10 月 4 日。

Nginx 特點是佔有內存少,併發能力強。事實上 nginx 的併發能力確實在同類型的網頁服務器中表現較好,一般來說,如果我們在項目中引入了 Nginx ,我們的項目架構可能是這樣:

Nginx 極簡掃盲入門Nginx 極簡掃盲入門

在這樣的架構中 , Nginx 所代表的角色叫做負載均衡服務器或者反向代理服務器,所有請求首先到達 Nginx 上,再由 Nginx 根據提前配置好的轉發規則,將客戶端發來的請求轉發到某一個 Tomcat 上去。

那麼這裏涉及到兩個概念:

負載均衡服務器

就是進行請求轉發,降低某一個服務器的壓力。負載均衡策略很多,也有很多層,對於一些大型網站基本上從 DNS 就開始負載均衡,負載均衡有硬件和軟件之分,各自代表分別是 F5 和 Nginx (目前 Nginx 已經被 F5 收購),早些年,也可以使用 Apache 來做負載均衡,但是效率不如 Nginx ,所以現在主流方案是 Nginx 。

反向代理服務器

另一個概念是反向代理服務器,得先說正向代理,看下面一張圖:

Nginx 極簡掃盲入門Nginx 極簡掃盲入門

在這個過程中,Google 並不知道真正訪問它的客戶端是誰,它只知道這個中間服務器在訪問它。因此,這裏的代理,實際上是中間服務器代理了客戶端,這種代理叫做正向代理。

那麼什麼是反向代理呢?看下面一張圖:

Nginx 極簡掃盲入門Nginx 極簡掃盲入門

在這個過程中,10086 這個號碼相當於是一個代理,真正提供服務的,是話務員,但是對於客戶來說,他不關心到底是哪一個話務員提供的服務,他只需要記得 10086 這個號碼就行了。

所有的請求打到 10086 上,再由 10086 將請求轉發給某一個話務員去處理。因此,在這裏,10086 就相當於是一個代理,只不過它代理的是話務員而不是客戶端,這種代理稱之爲反向代理。

Nginx 的優勢

在 Java 開發中,Nginx 有着非常廣泛的使用,隨便舉幾點:

  • 使用 Nginx 做靜態資源服務器:Java 中的資源可以分爲動態和靜態,動態需要經過 Tomcat 解析之後,才能返回給瀏覽器,例如 JSP 頁面、Freemarker 頁面、控制器返回的 JSON 數據等,都算作動態資源,動態資源經過了 Tomcat 處理,速度必然降低。對於靜態資源,例如圖片、HTML、JS、CSS 等資源,這種資源可以不必經過 Tomcat 解析,當客戶端請求這些資源時,之間將資源返回給客戶端就行了。此時,可以使用 Nginx 搭建靜態資源服務器,將靜態資源直接返回給客戶端。
  • 使用 Nginx 做負載均衡服務器,無論是使用 Dubbo 還是 Spirng Cloud ,除了使用各自自帶的負載均衡策略之外,也都可以使用 Nginx 做負載均衡服務器。
  • 支持高併發、內存消耗少、成本低廉、配置簡單、運行穩定等。
Nginx 安裝

由於基本上都是在 Linux 上使用 Nginx,因此松哥這裏主要向大家展示 CentOS 7 安裝 Nginx:

首先下載 Nginx

wget http://nginx.org/download/nginx-1.17.0.tar.gz

然後解壓下載的目錄,進入解壓目錄中,在編譯安裝之前,需要安裝兩個依賴:

yum -y install pcre-devel
yum -y install openssl openssl-devel

然後開始編譯安裝:

./configure
make
make install

裝好之後,默認安裝位置在 :

/usr/local/nginx/sbin/nginx

進入到該目錄的 sbin 目錄下,執行 nginx 即可啓動 Nginx :

Nginx 啓動成功之後,在瀏覽器中直接訪問 Nginx 地址:

Nginx 極簡掃盲入門Nginx 極簡掃盲入門

看到如上頁面,表示 Nginx 已經安裝成功了。

如果修改了 Nginx 配置,則可以通過如下命令重新加載 Nginx 配置文件:

./nginx -s reload

本文地址:https://www.linuxprobe.com/nginx-minimalist-literacy.html

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