Nginx Web服务器标准IP解决方案

开发 前端
Nginx Web服务器在使用的时候有不少问题出现,其中最重要的就是对IP问题上的解决。那么下面我们就看看如何才能解决这些问题。

Nginx Web服务器在使用的时候常常会使服务取ip出现问题,让Nginx Web服务器直接支持x_forwarded_for是其中一种解决方案。那么我们要如何才能使用这样的方案呢?

  1. set $ip $http_x_forwarded_for;  
  2. if ($ip ~ ^$ )  
  3. {  
  4. set $ip $remote_addr;  
  5. }  
  6. proxy_set_header X-Forwarded-For "$ip, $server_addr"; 

用这段代码就可以让Nginx Web服务器支持标准的x_forwarded_for,在某些情况下,可以用:

  1. proxy_set_header X-Forwarded-For "$ip"; 

不把Nginx Web服务器机器的ip地址加进去。

附:x_forwarded_for取ip的正确方式

x_forwarded_for是将请求路过的代理服务器的ip都记录下来的一条字符串,每经过一个代理服务器,x_forwarded_for就会在它的后面加上这个代理服务器的ip地址。常见的:

119.120.112.157, 61.135.253.11

这样就表示请求经过了一个代理服务器61.135.253.11。

119.120.112.157, 61.135.253.11, 192.168.0.13

经过了两个代理服务器61.135.253.11和192.168.0.13。

这样看起来取***个ip地址就是正确的,不过这比较草率:

192.168.0.1, 119.120.112.157, 61.135.253.11, 192.168.0.13

可以看到会有这样的x_forwarded_for地址,这是因为用户在反向代理前,还用了一个正向代理上网,这时取***个的话就是192.168.0.1,显然是不正确的。正确的取法应该是:取倒数***个非服务器ip,在例子中61.135.253.11, 192.168.0.13,这两个ip都是服务器用的ip,除去这两个,倒数***个119.120.112.157就是正确的。

【编辑推荐】

  1. Nginx负载均衡器如何实现自行共享
  2. Nginx代理服务器中的文件整理系统
  3. Nginx配置如何解决琐碎标签问题
  4. python编程在Nginx中的使用方法
  5. 基于Nginx的PHP本地测试环境构建软件pinyshop发布
责任编辑:张浩 来源: 博客园
相关推荐

2009-10-16 09:54:14

服务器网络安全解决方案

2009-12-11 10:27:07

APC

2018-07-25 14:50:41

服务器虚拟化方案

2010-05-21 18:03:19

IIS服务器

2010-02-24 15:57:45

惠普服务器DL1000

2014-10-24 10:20:22

负载均衡web服务器

2014-08-12 10:42:59

邮件服务器解决方案

2010-09-27 16:23:28

APC

2010-09-30 15:31:04

网络安全解决方案

2014-09-10 09:58:39

U-Mail邮件系统

2010-08-03 14:58:38

APC

2018-03-27 08:44:37

服务器备份异地

2010-08-23 16:13:11

DHCP服务器

2009-12-31 14:10:23

2009-02-17 19:47:43

浪潮服务器教育行业虚拟化解决方案

2013-05-28 10:30:07

航天联志按需定制解决方案

2014-08-26 09:38:59

邮件服务器解决方案

2018-08-21 09:03:00

SQLServer服务器

2010-05-20 13:48:17

IIS服务器

2010-11-08 14:59:44

SQL Server无
点赞
收藏

51CTO技术栈公众号