服务器设置和教程 · 8 10 月, 2024

Nginx 新手教程:設置 set_real_ip_from 指令

Nginx 新手教程:設置 set_real_ip_from 指令

Nginx 是一款高效能的網頁伺服器,廣泛應用於各種網站和應用程式中。對於新手來說,了解如何正確配置 Nginx 是非常重要的,尤其是在處理來自反向代理伺服器的請求時。本文將介紹如何使用 set_real_ip_from 指令來設置真實 IP 地址。

什麼是 set_real_ip_from 指令?

set_real_ip_from 指令用於告訴 Nginx 哪些 IP 地址可以被信任,並且可以用來設置客戶端的真實 IP 地址。當 Nginx 作為反向代理伺服器時,客戶端的真實 IP 地址可能會被代理伺服器的 IP 地址所取代。這樣會導致日誌記錄和安全性問題,因此需要使用 set_real_ip_from 指令來解決這個問題。

如何使用 set_real_ip_from 指令

在使用 set_real_ip_from 指令之前,您需要確定哪些 IP 地址是可信的。這通常是您的反向代理伺服器的 IP 地址。以下是設置的基本步驟:

步驟 1:編輯 Nginx 配置文件

首先,您需要找到 Nginx 的配置文件,通常位於 /etc/nginx/nginx.conf 或者 /etc/nginx/conf.d/default.conf。使用文本編輯器打開該文件:

sudo nano /etc/nginx/nginx.conf

步驟 2:添加 set_real_ip_from 指令

http 區塊或 server 區塊中,添加 set_real_ip_from 指令。以下是一個範例:

http {
    set_real_ip_from 192.168.1.1;  # 反向代理伺服器的 IP 地址
    set_real_ip_from 192.168.1.2;  # 另一個反向代理伺服器的 IP 地址
    real_ip_header X-Forwarded-For; # 使用 X-Forwarded-For 標頭
}

在這個範例中,您需要將 192.168.1.1192.168.1.2 替換為您的反向代理伺服器的實際 IP 地址。

步驟 3:重啟 Nginx

完成配置後,您需要重啟 Nginx 以使更改生效:

sudo systemctl restart nginx

測試配置

為了確保配置正確,您可以使用以下命令檢查 Nginx 的日誌文件:

tail -f /var/log/nginx/access.log

如果一切正常,您應該能夠在日誌中看到客戶端的真實 IP 地址,而不是反向代理伺服器的 IP 地址。

常見問題

1. 為什麼需要設置 set_real_ip_from?

設置 set_real_ip_from 可以確保 Nginx 獲取客戶端的真實 IP 地址,這對於日誌記錄和安全性至關重要。

2. 可以設置多個 IP 嗎?

是的,您可以多次使用 set_real_ip_from 指令來設置多個可信的 IP 地址。

3. 如果我使用的是 Cloudflare,該怎麼辦?

如果您使用 Cloudflare,您需要將 Cloudflare 的 IP 地址添加到 set_real_ip_from 中。Cloudflare 提供了一個 IP 地址列表,您可以在其官方網站上找到。

總結

通過正確配置 set_real_ip_from 指令,您可以確保 Nginx 能夠正確識別客戶端的真實 IP 地址,這對於網站的安全性和日誌記錄至關重要。如果您正在尋找高效能的 香港 VPS 解決方案,Server.HK 提供多種選擇,滿足您的需求。