Nginx 后端服务获取客户真实IP配置
2012-04-07 14:30
579 查看
转载自:http://www.save-info.com/classic/2011/03/04/917
Nginx作为HTTP代理转发前端时,后端服务无法获知前端访问客户的IP地址。本文用于解决无法获取客户真实IP的问题。
安装
编译Nginx时 多编译一个模块: (见下例中红色部分)
/configure --user=daemon --group=daemon --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-md5=/usr/lib --with-sha1=/usr/lib --with-http_gzip_static_module --with-http_realip_module
HTTP REALIP MODULE
这个模块允许从请求Headers里更改客户端的IP地址值(例如 实时的转发)。
它是有用的,如果nginx后面有多层负载均衡/代理,nginx转发请求时将会添加添加客户端的IP头。
http://wiki.nginx.org/NginxChsHttpRealIpModule
Nginx代理功能配置项增加 (红字部分)
server {
listen 80 default;
server_name _;
index index.php;
location / {
root /site/www/save-info.com/wwwroot;
proxy_redirect off ;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 50m;
client_body_buffer_size 256k;
proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 60;
proxy_buffer_size 256k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m;
proxy_pass http://www.save-info.com;
}
}
Nginx WEB服务功能配置项
location ~ .*\.php?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
set_real_ip_from 64.64.24.71/26; #允许被信任的IP段
real_ip_header X-Real-IP;
}
Nginx作为HTTP代理转发前端时,后端服务无法获知前端访问客户的IP地址。本文用于解决无法获取客户真实IP的问题。
安装
编译Nginx时 多编译一个模块: (见下例中红色部分)
/configure --user=daemon --group=daemon --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-md5=/usr/lib --with-sha1=/usr/lib --with-http_gzip_static_module --with-http_realip_module
HTTP REALIP MODULE
这个模块允许从请求Headers里更改客户端的IP地址值(例如 实时的转发)。
它是有用的,如果nginx后面有多层负载均衡/代理,nginx转发请求时将会添加添加客户端的IP头。
http://wiki.nginx.org/NginxChsHttpRealIpModule
Nginx代理功能配置项增加 (红字部分)
server {
listen 80 default;
server_name _;
index index.php;
location / {
root /site/www/save-info.com/wwwroot;
proxy_redirect off ;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 50m;
client_body_buffer_size 256k;
proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 60;
proxy_buffer_size 256k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m;
proxy_pass http://www.save-info.com;
}
}
Nginx WEB服务功能配置项
location ~ .*\.php?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
set_real_ip_from 64.64.24.71/26; #允许被信任的IP段
real_ip_header X-Real-IP;
}
相关文章推荐
- nginx前端,tomcat后端服务器获取客户的真实IP,包括tomcat访问日志获取真实IP的配置
- varnish前端让后端nginx获取客户真实ip
- varnish前端让后端nginx获取客户真实ip
- 让后端tomcat日志获取真实的IP,而不是nginx 服务器的IP
- 用nginx转发请求tomcat 如何配置访问日志获取真实ip
- nginx做反向负载均衡,后端服务器获取真实客户端ip
- nginx代理web,后端无法获取用户真实IP
- 让后端tomcat日志获取真实的IP,而不是nginx 服务器的IP
- nginx在varnish后端做负载均衡,后端tomca获取客户端真实IP
- 配置Nginx方向代理后,php获取客户端真实IP
- nginx做反向负载均衡,后端服务器获取真实客户端ip
- Nginx配置文件详解(包含获取真实来源IP的方法)
- nginx转发及后端服务器获取真实client的IP
- nginx前端负载,后端apache获取真实IP设置
- 利用nginx反向代理,后端Web如何获取客户真实ip
- nginx做反向负载均衡,后端服务器获取真实客户端ip
- Nginx 负载均衡 后端服务器获取前端用户真实IP
- Nginx 负载均衡 后端服务器获取前端用户真实IP
- 使用nginx做反向代理,后端tomcat日志获取真实ip解决方案
- nginx做反向负载均衡,后端服务器获取真实客户端ip(转)