Loading... # Nginx 自定义接口返回客户端信息 ### 目的 通过配置 Nginx,返回客户端访问 Nginx 时使用的 `服务器 IP 地址`、`客户端IP 地址`、或者是 `User-Agent`(用于识别客户端的设备和浏览器信息),以及请求的 `URI`。这些信息以 JSON 格式返回,便于客户端和开发人员使用和分析。 ### 环境 * 操作系统:CentOS 8(或其他 Linux 发行版) * Nginx 版本:任意 ### 配置步骤 #### 步骤一:编辑 Nginx 配置文件 打开 Nginx 配置文件(例如 `/etc/nginx/nginx.conf` 或 `/etc/nginx/conf.d/default.conf`),添加一个新的 server 块,配置返回 JSON 格式的响应内容,包括更多的客户端信息。 ```nginx http { server { listen 80; server_name your_custom_domain; location /iptest { add_header Content-Type application/json; add_header X-Server-IP $server_addr; add_header X-Client-IP $remote_addr; add_header X-User-Agent "$http_user_agent"; return 200 '{ "Server-IP": "$server_addr", "Client-IP": "$remote_addr", "User-Agent": "$http_user_agent", "Request_Uri": "$request_uri" }'; } } } ``` 实际示例 ```nginx # 返回纯文本 location /iptest { add_header Content-Type text/plain; add_header X-Client-IP $remote_addr; add_header X-Server-IP $server_addr; return 200 "You are accessing Nginx from IP: $remote_addr\nNginx is running on IP: $server_addr\n"; } ``` #### 配置说明 * `listen 80;`:指定监听的 80 端口。 * `server_name your_custom_domain;`:指定服务器名称,可以是你在 hosts 文件中配置的自定义域名。 * `add_header Content-Type application/json;`:设置响应的内容类型为 JSON。 * `add_header X-Server-IP $server_addr;`:添加服务器 IP 地址的自定义响应头。 * `add_header X-Client-IP $remote_addr;`:添加客户端 IP 地址的自定义响应头。 * `add_header X-User-Agent "$http_user_agent";`:添加 User-Agent 的自定义响应头。 * `return 200 ...`:返回 JSON 格式的响应内容,包括服务器 IP 地址、客户端 IP 地址、User-Agent 和请求的 URI。 #### 步骤二:重载 Nginx 配置 1. 测试 Nginx 配置文件的语法: ```bash sudo nginx -t # 或者 nginx -s reload /usr/local/nginx/sbin/nginx -s reload ``` 2. 如果配置文件语法正确,重新加载 Nginx: ```bash sudo systemctl reload nginx # 或者 nginx reload /usr/local/nginx/sbin/nginx -s reload ``` ### 测试和验证 1. 在客户端浏览器中访问你配置的自定义域名,例如 `http://your_custom_domain`。 2. 在浏览器中你应该会看到如下 JSON 格式的响应内容: ```json { "Server_IP": "192.168.32.60", "Client_IP": "192.168.32.104", "User_Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0", "request_uri": "/iptest" } ``` 3. 在浏览器的开发者工具中查看响应头,你会看到以下信息: ```makefile X-Server-IP: 192.168.32.60 X-Client-IP: 192.168.32.104 X-User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0 ``` ### 总结 通过配置 Nginx,能够捕获并返回客户端访问的详细信息,包括客户端 IP 地址、服务器 IP 地址、User-Agent 和请求的 URI。这些信息以 JSON 格式返回,方便客户端和开发人员使用和分析。这样不仅增强了 Nginx 的功能,还提高了对客户端访问情况的可见性。 最后修改:2024 年 07 月 18 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果文章有帮助到你,请随意赞赏
2 条评论
观点新颖,见解独到,发人深省。
真棒!