直接讓web服務運行在80端不行嗎?為什么要用nginx反向代理?

其實現在估計很少人會用80端口部署服務了,起碼都是443端HTTPS服務了,因為HTTPS相對更安全。

但是這不影響這個問題的解答,下面我以個人的一些看法說明下。

一個服務器只有一個常用的端口

我們都知道你只買了一臺公網服務器,默認80端口是HTTP服務,443端口是HTTPS服務。

而現在很多時候,微信、網站搜索引擎,默認都是用這些端口進行正常處理,當你有多個服務要對外開放,你如果A服務已經占用了80端口,那么B服務就不可以再占用80端口。

而你采用Nginx服務直接占用80或者443端口,那么我們根據Nginx的規則配置,就可以設置如下規則:

訪問url路徑/api 走A服務,訪問url路徑/admin 走B服務。

Nginx高性能

熟悉Nginx性能的程式員,都知道Nginx的性能之高,這里就不展開說。

因為有些編程語言框架,比如Flask,本身處理web請求就性能不高,通過Nginx可以提前處理web請求,而Flask就可以更多關注業務本身的邏輯。

Nginx負載均衡

當你的web服務后臺可以多實例部署,這時候你說的web服務直接運行80端口,那就不能支持多臺實例。

而通過nginx,就可以指向兩臺甚至多臺實例的后端服務,而且可以設置策略進行負載請求。

比如負載后端兩個web服務,A機器性能配置強,那么我們就可以分配更多的請求到A機器。

B機器性能一般,那么我們就可以減少請求到這臺機器。

Nginx安全性

因為有了Nginx服務器在前面進行處理請求,用戶根本不知道后端是用什么語言進行處理,減少后端暴露的幾率。

不過由于使用Nginx的人很多,Nginx的漏洞也是備受關注,所以要及時關注Nginx的漏洞和最新穩定版本升級。

這里提供一個檢測Nginx穩定版本的視訊解說:https://www.ixigua.com/6832886164081345038/ ,有興趣的可以看看。

Nginx資源消耗

使用Nginx服務可以占用低的內存消耗,同時能支持高并發連接,何樂而不為。

如果覺得回答能解決到一些問題,可以關注@testerzhang,我會不定期發布一些相關技術文章和視訊。

5 条回复 A文章作者 M管理員
  1. 怕被人暴苦瓜

  2. 還有負載均衡

  3. 現在應該是先waf再cdn再源web

  4. 遇到技術問題不懂,找你最好啦![贊][贊][贊]

  5. Nginx本身不會崩么? 又如何規避呢?