iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
自我挑戰組

30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用系列 第 25

Day 25:使用nginx作為反向代理轉發Web應用程式請求

  • 分享至 

  • xImage
  •  

在本篇文章中,我們將詳細介紹如何利用nginx作為反向代理,來轉發和管理Web應用程式的請求。這不僅能為您的網站提供一個額外的安全層,還能實現更高效的流量管理和負載平衡。

什麼是反向代理?

簡單來說,反向代理就是一台位於客戶端和實際伺服器之間的中介伺服器。當使用者發出一個請求時,這個請求會先到達反向代理,然後由反向代理再轉發到適當的後端伺服器。這樣做的好處是可以隱藏後端伺服器的實際IP和位置,從而提高安全性。

為什麼要選擇nginx?

nginx(發音為「engine-x」)是一個高性能、高可靠性的Web伺服器軟體。它也可以作為反向代理、負載平衡器,甚至是郵件代理伺服器。它的設計輕量且易於配置,因此被廣泛用於各種不同的應用場景。

如何配置nginx?

首先,確保您的系統已經安裝了nginx。在Ubuntu系統上,安裝非常簡單:

sudo apt update
sudo apt install nginx

安裝完成後,接著我們要編輯nginx的設定檔,這個設定檔通常位於/etc/nginx/sites-available/default

打開設定檔,並輸入以下內容:

server {
    listen 80;
    location / {
        proxy_pass http://your_backend_address;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

這個設定檔主要做了三件事:

  1. listen 80;:指示nginx監聽80端口,這是HTTP的默認端口。
  2. proxy_pass:將所有進入的HTTP請求轉發到指定的後端地址。
  3. proxy_set_header:設置一些必要的HTTP header。

儲存設定檔後,使用以下指令重新啟動nginx,以便套用新的設定。

sudo systemctl restart nginx

將nginx整合到Docker Compose

如果您的專案是基於Docker的,那麼可以考慮將nginx也一併容器化。在docker-compose.yml檔案中,加入以下片段:

services:
  nginx:
    image: nginx:latest
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    ports:
      - "80:80"

這樣一來,您的nginx設定就可以透過Docker Compose一同部署。

總結

透過nginx作為反向代理,您可以更有效地管理Web應用程式的請求,並為您的網站添加一個額外的安全層


上一篇
Day 24:發布 RSS 閱讀器映像檔到 GitHub Container Registry
下一篇
Day 26:番外篇 - k8s 麻瓜也想架 GitHub Actions Runner Controller (1)
系列文
30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言