只需兩行配置,Nginx 即可快速獲取客戶端公網 IP 的神技,你掌握了嗎?

  • 2019 年 11 月 24 日
  • 筆記

本文將給大家介紹一個 Nginx 的小技巧,可以在不使用任何程式語言的情況下,直接返回客戶端公網 IP 地址。

實現方法非常的簡單,你只要在 Nginx 中配置以下內容就可以解決問題。

location /ip {    default_type text/plain;    return 200 $remote_addr;}

使用 curl 命令測試一下,我們從響應結果可以看到只顯示了客戶端的 IP 地址。

$ curl https://example.com/ip2001:1b48:103::189

default_type text/plain 指令除了阻止 Web 瀏覽器嘗試將響應下載為文件外,並沒有使用任何實用程式。即,Web 瀏覽器可以直接顯示 IP 地址。

如果你想將以上結果以 JSON 格式輸出,只需做一點小修改即可實現。具體方法如下:

location /json_ip {    default_type application/json;    return 200 "{"ip":"$remote_addr"}";}

現在,響應的就是一個漂亮的 JSON 格式的輸出。

$ curl -s https://example.com/json_ip | jq{    "ip": "2001:1b48:103::189"}

至此,快速通過 Nginx 獲取客戶端公網 IP 地址的小技巧就演示完了。希望這個 Nginx 的小技巧可以為你節省一些維護時間。

本文翻譯至:https://url.cn/5Th0D1e,版權歸原作者所有