nginx作为代理 后端服务器ip问题
2014-05-13 15:43
429 查看
由于采用nginx+nginx的方式,导致后端nginx记录的ip记录错误,走了很多弯路,记录一下。
1.在后端机器上重新变异nginx
./configure --prefix=/usr/local/webserver/nginx --with-http_ssl_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_realip_module
make
make install
2,前端nginx proxy配置
proxy_pass http://nginx_upstream;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 120;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
3.后端nginx proxy配置
set_real_ip_from 10.164.191.102; 前端代理ip
real_ip_header X-Real-IP;
proxy_set_header X-Real-IP $remote_addr; 一定得加上,不然获取的还是代理ip
4.后端日志记录设置
log_format '$http_x_real_ip - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
5.nginx+apache配置
用mod_rpaf来获取IP的
所以需要安装这个模块
下载:http://stderr.net/apache/rpaf/download/
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/www/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
配置apache:
在 httpd.conf中添加
LoadModule rpaf_module libexec/apache2/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 192.168.1.1 #这个是前段的IP,可不是后端的IP哦
RPAFheader X-Forwarded-For
LogFormat "%{X-Real-Ip}i %l %u %t \"%m http://%v%U%q\"
%>s %b \"%{Referer}i\" \"%{User-Agent}i\" - %h" combinedall
1.在后端机器上重新变异nginx
./configure --prefix=/usr/local/webserver/nginx --with-http_ssl_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_realip_module
make
make install
2,前端nginx proxy配置
proxy_pass http://nginx_upstream;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 120;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
3.后端nginx proxy配置
set_real_ip_from 10.164.191.102; 前端代理ip
real_ip_header X-Real-IP;
proxy_set_header X-Real-IP $remote_addr; 一定得加上,不然获取的还是代理ip
4.后端日志记录设置
log_format '$http_x_real_ip - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
5.nginx+apache配置
用mod_rpaf来获取IP的
所以需要安装这个模块
下载:http://stderr.net/apache/rpaf/download/
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/www/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
配置apache:
在 httpd.conf中添加
LoadModule rpaf_module libexec/apache2/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 192.168.1.1 #这个是前段的IP,可不是后端的IP哦
RPAFheader X-Forwarded-For
LogFormat "%{X-Real-Ip}i %l %u %t \"%m http://%v%U%q\"
%>s %b \"%{Referer}i\" \"%{User-Agent}i\" - %h" combinedall
相关文章推荐
- nginx做前端,后端web服务器无法获取真正客户机的ip,解决方法
- nginx做反向负载均衡,后端服务器获取真实客户端ip
- 后端tomcat日志获取真实的IP,不是nginx 服务器的IP
- Windows10下启动nginx反向代理服务器失败的解决方法(重在解决:80端口被PID为4的System占用问题)
- Nginx.conf配置,nginx作为前端反向代理服务器的配置
- 在nginx反代后端nginx真实服务器获取客户端IP
- Nginx作为反向代理服务器,多个不同项目共用80端口(转载)
- Nginx作为代理服务器如何响应后端服务器的status code
- nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP
- nginx配置反向代理解决前后端分离跨域问题
- 【翻译】使用nginx作为反向代理服务器,uWSGI作为应用服务器来部署flask应用
- nginx后端代理多台php-fpm服务器;(补充上一篇博客)
- nginx前端,tomcat后端服务器获取客户的真实IP,包括tomcat访问日志获取真实IP的配置
- nginx做反向负载均衡,后端服务器获取真实客户端ip
- nginx做反向负载均衡,后端服务器获取真实客户端ip(转)
- 使用Nginx/Lighttpd/Squid作为反向代理服务器 - [技术笔记]
- Nginx 反向代理获取真实IP问题
- Haproxy做代理,后端nginx获取真实用户IP
- nginx作为反向代理服务器
- nginx配置反向代理解决前后端分离跨域问题