只需两行配置,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,版权归原作者所有