如何在 Docker 上部署 NGINX 反向代理?
簡介
NGINX 是一款流行的開源 Web 伺服器,它也充當反向代理、負載均衡器和 HTTP 快取。反向代理是位於 Web 伺服器前面的伺服器,並將客戶端請求轉發到相應的後端伺服器。
使用 NGINX 反向代理的好處包括提高安全性、可擴充套件性和效能。透過充當客戶端和伺服器之間的中間體,NGINX 還可以提供其他功能,例如快取、SSL 終止和內容壓縮。
在本文中,我們將討論如何在 Docker 上部署 NGINX 反向代理——一個允許開發人員輕鬆建立、部署和執行容器中應用程式的平臺。透過在 Docker 上部署 NGINX 反向代理,我們可以在利用其優勢的同時,也受益於容器化提供的可移植性和隔離性。
我們將涵蓋您需要了解的所有內容,以設定在 Docker 上部署 NGINX 反向代理的環境——包括先決條件、NGINX 和 Docker 的配置選項——以及您可以執行的測試場景以確保一切正常執行。無論您是這兩個技術的初學者,還是隻是尋找簡化部署過程並同時提高效能的方法,本文都能滿足您的需求!
設定 Docker 環境
設定
在 Docker 上部署 NGINX 反向代理之前,我們必須首先設定 Docker 環境。Docker 是一個基於容器的平臺,允許在容器內建立和部署應用程式,提供了一種有效的方式來打包和分發軟體。要開始設定我們的 Docker 環境,我們必須首先在我們的系統上安裝 Docker。
安裝說明因您的作業系統而異,但可以在網上輕鬆找到。安裝完成後,我們必須建立一個新目錄,用於儲存反向代理部署所需的所有檔案。
元件
設定 Docker 環境需要幾個元件,這些元件將用於部署 NGINX 反向代理。這些包括 -
**Docker 引擎**− **這是 Docker 平臺的核心元件,負責執行容器。
**Docker Compose**− **此工具允許我們輕鬆定義和執行多容器應用程式。
**NGINX 映象**− **我們需要從官方儲存庫或其他地方拉取或構建 NGINX 的映象,以便將其用作我們的反向代理伺服器。安裝完這些元件後,我們可以繼續配置在新建的 Docker 環境上部署 NGINX 反向代理所需的檔案。
配置 NGINX 反向代理
配置說明
設定 Docker 環境後,是時候配置 NGINX 反向代理了。配置檔案決定伺服器如何處理傳入的 HTTP 請求。
示例配置檔案是配置您自己的檔案的良好起點。首先,開啟文字編輯器並建立一個名為 nginx.conf 的新檔案。
配置檔案由不同的塊組成,例如 http、upstream、server 和 location 塊。http 塊包含全域性設定,例如超時和代理緩衝設定。
server 塊包含特定虛擬主機或域名特定的設定。這些特定設定包括 SSL 證書路徑和重定向規則。
可在 NGINX 配置檔案中配置的設定
NGINX 反向代理可以使用多種設定進行配置 -
Proxy_pass − 此設定允許您指定將請求轉發到的後端伺服器。
Proxy_cache − 此設定允許您將來自上游伺服器的響應儲存到磁碟上,以便在將來的請求中快速提供服務。
Add_header − 此設定允許您向伺服器生成的所有響應新增自定義標頭。
Gzip − 此設定啟用或停用伺服器生成的響應上的 gzip 壓縮。
Ssl_certificate − 此設定指定在保護客戶端和伺服器之間流量時應使用的 ssl/tls 證書。
NGINX 配置檔案中還有許多其他選項,可讓您微調反向代理的操作方式。在生產環境中部署它們之前,務必測試不同的配置。您可以使用 Postman 或 cURL 命令等工具來測試透過 NGINX 反向代理發出的請求。
部署和執行容器
使用 Docker Compose
根據上一節配置 NGINX 反向代理後,下一步是使用 Docker Compose 部署它。Docker Compose 是一個用於定義和執行多容器 Docker 應用程式的工具。
它允許您在一個 YAML 檔案中定義構成應用程式的所有容器及其配置選項,從而簡化應用程式的部署和管理。要使用 Docker Compose,您首先需要在專案目錄中建立一個 `docker-compose.yml` 檔案。
此檔案將指定構成應用程式的所有容器及其配置選項。以下是此檔案對於 NGINX 反向代理可能的樣子 -
version: '3' services: nginx: image: nginx volumes: - ./nginx.conf:/etc/nginx/nginx.conf ports: - "80:80" - "443:443"
在此示例中,我們定義了一個名為 `nginx` 的單個服務,該服務使用來自 Docker Hub 的官方 `nginx` 映象。
我們使用卷掛載將本地 `nginx.conf` 檔案對映到容器的 `/etc/nginx/nginx.conf` 目錄中,這將允許我們根據需要自定義 NGINX 配置。我們將主機機的埠 `80` 和 `443` 對映到容器上的這些埠。
執行容器時可用的選項
使用 Docker Compose(或任何其他方法)執行容器時,可以使用許多不同的選項來微調其行為。其中一些選項包括 -
埠對映 − 如我們上面示例所示,您可以將主機機上的埠對映到容器上的埠,以便適當地路由流量。- 卷掛載:您可以將本地目錄或檔案掛載到容器中,以提供對資料或配置檔案的訪問。
環境變數 − 您可以設定將在容器內部可用的環境變數,這些變數可用於自定義其行為。- 重啟策略:您可以為容器指定重啟策略,該策略將決定如果它意外崩潰或退出會發生什麼。
資源限制 − 您可以限制容器允許使用的 CPU、記憶體或其他資源的數量。通過了解和利用這些選項,您可以建立高度定製且高效的 Docker 部署,以滿足應用程式的特定需求。
結論
在 Docker 上部署 NGINX 反向代理起初看起來可能令人生畏,但透過遵循本文中概述的這些簡單步驟,可以輕鬆有效地完成。憑藉其靈活性和可擴充套件性功能,它是尋求最佳化其 Web 應用程式效能和安全性的企業的絕佳解決方案。即使在部署過程中可能會出現一些問題,例如埠對映或 DNS 解析錯誤,但大多數問題都有簡單的解決方案。
透過將 NGINX 反向代理與 Docker 強大的容器化技術結合使用,企業可以提高可靠性和節省成本,同時提高其 Web 應用程式的效能和安全性。我們希望本文提供了足夠的資訊,以幫助您輕鬆地在 Docker 上部署 NGINX 反向代理!
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP