Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1672513
  • 博文数量: 1279
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 13084
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-07 16:26
个人简介

Linux学习小标兵,专注Linux资讯分享,技术文章分享

文章分类

全部博文(1279)

文章存档

2023年(236)

2022年(285)

2021年(265)

2020年(248)

2019年(213)

2018年(32)

我的朋友

分类: LINUX

2019-10-27 21:39:37

导读 nginx 配置反向代理之前说过使用nginx 搭建CDN 服务器的方法《nginx 配置反向代理》 我的web服务和CDN都是用nginx来配置的,使用了一些时间后发现主服务器上日志记录的信息都是来自CDN服务器的请求,如果直接访问CDN 的话主服务器上无法记录到来访者的IP地址,网上查了下几种方案,最后还是使用nginx 自带的realip_module 来处理更合适。

使用nginx -V 查看一下nginx 参数中有没有--with-http_realip_module

[root@aliyun cnyunwei]# nginx -V

nginx version: nginx/1.10.1

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 
    
built with OpenSSL 1.0.2h  3 May 2016
    
TLS SNI support enabled
    
configure arguments: --prefix=XXXXXX   --with-http_realip_module  XXXXXX

默认是不安装该模块的,所以如果检测出来没有这个模块就需要重新编译了,重新编译也非常方便,即使是线上不能停机当然也可以编译,平滑升级即可。

进入nginx 源码安装包目录下

configure  的参数就和原来保持一样,只是增加一个--with-http_realip_module 

例如:--prefix=/usr/local/nginx  --with-http_stub_status_module  --with-http_realip_module

make && make install 

至于平滑升级,可直接执行 killall -s USR2 nginx

接下来是编辑对应的配置文件设置

location 中加入以下信息:

set_real_ip_from 222.222.222.222;  #这里是需要填写具体的CDN服务器IP地址

real_ip_header  X-Forwarded-For;

real_ip_recursive on; 

怎样获取CDN上用户真实IP地址怎样获取CDN上用户真实IP地址

写一个测试页面来检测读取的访问IP地址是否已经获取到了用户IP地址 vim ip.php

< ?php 
echo "Welcome cnyunwei.cc !"; 
echo '
server_addr : '; 
echo $_SERVER['SERVER_ADDR']; 
echo 'remote_addr : '; 
echo $_SERVER['REMOTE_ADDR']; 
echo 'host : '; 
echo $_SERVER['HTTP_HOST']; 
?>

下面即可直接访问测试,remote_addr 是否为你当前的公网IP地址,然后修改本地电脑hosts 重定向到CDN服务器再测试验证IP地址是否正确读取,如果正确的情况访问日志中也会正确显示对应的来访IP地址而不是CDN服务器的地址。


本文来自《Linux就该这么学》官方资讯站。
阅读(1105) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~