nginx 怎么打印代理服务器的ip地址

nginx 怎么打印代理服务器的ip地址,第1张

server {
listen 8000;
server_name testhost alias anotheralias;
location / {
root "D:\site";
index indexhtml indexhtm;
}
}

如何在两层服务器的第二层Nginx上获取用户IP

一.之前在做nginx的服务器配置的时候遇到了一个问题,在之前服务器有用到一个限制客户端最大并发连接的功能,而且这个功能的实现是依靠在服务器中做
[html] view plaincopy
$remote-addr
这样的配置来达到的。但在增加了前端一层(负载、CDN、防火墙、安全服务)服务器之后,拿到的客户端IP就都变成了前端服务器的IP,而并非真是的用户IP地址

二.这样的问题下,我又重新看了几次nginx官网的介绍,也发现其中另外一个特别重要的变量
[html] view plaincopy
$proxy_add_x_forwarded_for
这个变量是客户端访问请求中的X-forwarded-for 字段的值,如果请求中不包含这个字段,则自动用这个变量会等价于remote-addr这个变量。这允许我们获取>首先,在前端nginx上需要做如下配置:
location /
proxy_set_hearder host $host;
proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
};
nginx会在把请求转向后台real-server前把>nginx在转发的时候可以通过添加特定的头来显示原始IP地址
通常使用X-Forwarded-For或CLIENT_IP来表示原始IP地址
IP地址都是以逗号来追加IP地址
所以取该请求头的第一个值,一般就是原始的IP地址

基于各种原因,有时想隐藏nginx的显示版本号,也为服务器更安全有如下几个方法1 修改主配置文件nginxconf在>将需要禁止的 IP 放入 Nginx 配置文件并 reload 使其生效即可
假设 nginx 安装路径为:/usr/local/nginx-178
则在该路径下新建配置文件:touch blockipsconf
将你要屏蔽的 IP 写入该文件:vim blockipsconf
deny 1234;
deny 91212450/24;
deny 91212650/24;
然后保存退出
进入路径 /usr/local/nginx-178/conf
编辑文件:nginxconf
在该文件最后一行写入:include blockipsconf;
进入路径 /usr/local/nginx/sbin/
测试 nginxconf 文件是否合法:/nginx -t
如果没有问题 则执行 /nginx -s reload
这样子 即可生效


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10727253.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存