环境:

  user:192.168.100.169

  nginx代理:192.168.100.175

  tomcat:192.168.100.175

  域名:www.vijay.com  --->192.168.100.175

1.nginx配置

    server {
listen ;
server_name www.vijay.com; location / {
proxy_pass http://192.168.100.175:8080/;
proxy_redirect off;
proxy_set_header Host $host;          
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      proxy_connect_timeout 90;
        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;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header http_user_agent $http_user_agent;    //判断访问端是苹果,安卓,win还是mac

        proxy_next_upstream http_502 http_504 http_503 error timeout invalid_header;  //请求出错后,转向下一个节点

        }
location /status {
stub_status on;
access_log on;
}
}
proxy_pass http://192.168.10.10;  //用于指定反向代理的服务器池
proxy_set_header Host $hoxt; //当后端web服务器也配置了多个虚拟主机时,需要用该header来区分反向代理哪个主机名
prox_set header X-Forwarded-For $remote_addr //如果后端web服务器上的程序需要获取用户ip,可以从该header头获取
proxy_set_header http_user_agent $http_user_agent;    //判断访问端是苹果,安卓,win还是mac
proxy_body_buffer_size //用于指定客户端请求主体缓冲区大小,可以理解为先保存到本地在传给用户
proxy_connect_timeout //表示与后端服务器连接的超时时间,即发起握手等候响应的超时时间
proxy_send_timeout //表示后端服务器的数据回传时间,即在规定的时间内后端服务器必须传完所有的数据,否则,nginx将断开这个连接
proxy_read_timeout //设置nginx从代理的后端服务器获取信息的时间,表示连接建立成功之后,nginx等待后端服务器的响应时间,其实nginx已经进入后端的排队之中等候处理
proxy_buffer_size //设置缓冲区大小,默认,该个、缓冲区大小等于指令proxy_buffers设置的大小
proxy_buffers //设置缓冲区的数量和大小。nginx从代理的后端服务器获取的响应信息,会保存到缓冲区
proxy_busy_buffers_size //用于设置系统忙碌时可以使用的proxy_buffers大小,官方推荐为proxy_buffers*2
proxy_tmep_file_write_size //指定proxy缓存临时文件的大小
proxy_next_upstream http_502 http_504 http_503 error timeout invalid_header;  //请求出错后,转向下一个节点

2.web服务器端日志配置(如tomcat)

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %{X-Forwarded-For}i %{X-Real-IP}i %{Host}i %{http_user_agent}i %l %u %t &quot;%r&quot; %s %b" />
3.log日志:
192.168.100.175  192.168.100.169 192.168.100.169  www.vijay.com  - - [/May/::: +] "GET /bg-upper.png HTTP/1.0"  -
192.168.100.175 192.168.100.169 192.168.100.169 www.vijay.com - - [/May/::: +] "GET /bg-nav.png HTTP/1.0" -
192.168.100.175 192.168.100.169 192.168.100.169 www.vijay.com - - [/May/::: +] "GET /asf-logo.png HTTP/1.0" -
192.168.100.175 192.168.100.169 192.168.100.169 www.vijay.com - - [/May/::: +] "GET /bg-button.png HTTP/1.0" -
192.168.100.175 192.168.100.169 192.168.100.169 www.vijay.com - - [/May/::: +] "GET /tomcat.png HTTP/1.0" -
192.168.100.175 192.168.100.169 192.168.100.169 www.vijay.com - - [/May/::: +] "GET /bg-middle.png HTTP/1.0" -
192.168.100.175  192.168.100.21 192.168.100.21  192.168.100.175 Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1. (KHTML, like Gecko) Version/9.0 Mobile/13D15 Safari/601.1  - - [/May/::: +] "GET /bg-button.png HTTP/1.0"  -
192.168.100.175 192.168.100.21 192.168.100.21 192.168.100.175 Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1. (KHTML, like Gecko) Version/9.0 Mobile/13D15 Safari/601.1 - - [/May/::: +] "GET /bg-middle.png HTTP/1.0" -
192.168.100.175 192.168.100.21 192.168.100.21 192.168.100.175 Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1. (KHTML, like Gecko) Version/9.0 Mobile/13D15 Safari/601.1 - - [/May/::: +] "GET /asf-logo.png HTTP/1.0" -
192.168.100.175 192.168.100.21 192.168.100.21 192.168.100.175 Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1. (KHTML, like Gecko) Version/9.0 Mobile/13D15 Safari/601.1 - - [/May/::: +] "GET /bg-upper.png HTTP/1.0" - 192.168.100.175 192.168.100.108 192.168.100.108 192.168.100.175 Mozilla/5.0 (Linux; U; Android 4.2.; zh-cn; HUAWEI G750-T00 Build/HuaweiG750-T00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 - - [/May/::: +] "GET / HTTP/1.0"
192.168.100.175 192.168.100.108 192.168.100.108 192.168.100.175 Mozilla/5.0 (Linux; U; Android 4.2.; zh-cn; HUAWEI G750-T00 Build/HuaweiG750-T00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 - - [/May/::: +] "GET /tomcat.css HTTP/1.0"
192.168.100.175 192.168.100.108 192.168.100.108 192.168.100.175 Mozilla/5.0 (Linux; U; Android 4.2.; zh-cn; HUAWEI G750-T00 Build/HuaweiG750-T00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 - - [/May/::: +] "GET /tomcat.png HTTP/1.0" 5103

192.168.100.175 192.168.100.169 192.168.100.169 192.168.100.175 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) - - [12/May/2016:19:25:28 +0800] "GET /bg-button.png HTTP/1.0" 304 -
192.168.100.175 192.168.100.169 192.168.100.169 192.168.100.175 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) - - [12/May/2016:19:25:28 +0800] "GET /asf-logo.png HTTP/1.0" 304 -
192.168.100.175 192.168.100.169 192.168.100.169 192.168.100.175 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E) - - [12/May/2016:19:25:28 +0800] "GET /bg-middle.png HTTP/1.0" 304 -
192.168.100.175 192.168.100.165 192.168.100.165 192.168.100.175 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56 - - [12/May/2016:19:27:51 +0800] "GET / HTTP/1.0" 200 11230
192.168.100.175 192.168.100.165 192.168.100.165 192.168.100.175 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56 - - [12/May/2016:19:27:51 +0800] "GET /tomcat.css HTTP/1.0" 200 5576
192.168.100.175 192.168.100.165 192.168.100.165 192.168.100.175 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56 - - [12/May/2016:19:27:51 +0800] "GET /tomcat.png HTTP/1.0" 200 5103
192.168.100.175 192.168.100.165 192.168.100.165 192.168.100.175 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11) AppleWebKit/601.1.56 (KHTML, like Gecko) Version/9.0 Safari/601.1.56 - - [12/May/2016:19:27:51 +0800] "GET /bg-nav.png HTTP/1.0" 200 1401

%h :192.168.100.175
%{X-Forwarded-For}i:192.168.100.169
%{X-Real-IP}i:192.168.100.169
%{Host}i:www.vijay.com
%{http_user_agent}i:Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13D15 Safari/601.1 
                     Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; HUAWEI G750-T00 Build/HuaweiG750-T00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 

备注:

X-Forwarded-For 和 X-Real-IP 的区及获取客户端的ip? 
一般来说,X-Forwarded-For是用于记录代理信息的,每经过一级代理(匿名代理除外),代理服务器都会把这次请求的来源IP追加在X-Forwarded-For中 来自4.4.4.4的一个请求,header包含这样一行 X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3 代表 请求由1.1.1.1发出,经过三层代理,第一层是2.2.2.,第二层是3.3.3.,而本次请求的来源IP4.4.4.4是第三层代理。
而X-Real-IP,一般只记录真实发出请求的客户端IP,上面的例子,如果配置了X-Read-IP,将会是 X-Real-IP: 1.1.1.1 所以 ,如果只有一层代理,这两个头的值就是一样的。

nginx proxy模块的更多相关文章

  1. Nginx 切片模块、断点续传

    熟悉 CDN 行业主流技术的朋友应该都比较清楚,虽然 Nginx 近几年发展的如日中天,但是基本上没有直接使用它自带的 proxy_cache 模块来做缓存的,原因有很多,例如下面几个: 不支持多盘 ...

  2. nginx反向代理proxy模块相关参数

    http_proxy_module Proxy_pass proxy_pass指令属于ngx_http_proxy_module模块,此模块可以将请求转发到另一台服务器:官方说明:http://ngi ...

  3. Nginx配置之location模块和proxy模块

    1.location指令的用法介绍 Location主要用来匹配url,如:http://www.beyond.com/nice,在这里对于location来说www.beyond.com是域名,/n ...

  4. nginx的proxy模块详解以及参数

    文章来源 运维公会:nginx的proxy模块详解以及参数 使用nginx配置代理的时候,肯定是要用到http_proxy模块.这个模块也是在安装nginx的时候默认安装.它的作用就是将请求转发到相应 ...

  5. Nginx Http模块开发

    关于Nginx Http模块开发的文章非常少,只有Emiler的那篇关于Http模块的文章,但是那篇文章里面,并没有说到事件型的模块如何进行开发.而且文章里面提到的内容实在是让人有点意犹未尽.因此,对 ...

  6. http proxy模块参数

    http proxy模块参数 nginx功能的代理功能是是通过http proxy模块来实现的.默认在安装Nginx是已经安装了http proxy模块,可以直接使用. http模块相关参数 说明 p ...

  7. (转)nginx 常用模块整理

    原文:http://blog.51cto.com/arm2012/1977090 1. 性能相关配置 worker_processes number | auto: worker进程的数量:通常应该为 ...

  8. nginx基础模块

    http://www.nginx.cn/doc/ 基础模块 HTTP Core模块* HTTP Upstream 模块 HTTP Access 模块 HTTP Auth Basic 模块 HTTP A ...

  9. Nginx软件模块说明

    Nginx软件模块说明 Nginx常用模块 注:以下只是列举Nginx常用模块,需要详细了解更多模块可以登录Nginx官方网站查看 功能模块 模块说明 ngx_http_core_module 包含一 ...

随机推荐

  1. each,collect map collect! map!

    arr = [1,2,3] 1) arr2 = arr.each{|element| element = element * 2} #arr与arr2仍然都等于[1,2,3]   each返回原数组 ...

  2. C++ 判断目录是否存在并新建目录

    http://blog.csdn.net/u012005313/article/details/50688257 #include <io.h> #include <string&g ...

  3. 关于矢量图片资源向后兼容:CompatVectorFromResourcesEnabled标志的使用

    StackOverflow上摘抄的: some things have changed since I asked this question so I will answer it myself.W ...

  4. 编译 boost 库(win7+boost1.60+vs2008)

    参见:http://blog.csdn.net/u013074465/article/details/42532527 下载boost安装包 https://sourceforge.net/proje ...

  5. 10个最佳的触控手式的JavaScript框架(转)

    由于各种原因移动开发是一项艰难的工作,比如它是非常耗时的.充满压力的任务.最重要的是,作为一个开发人员,你必须保持更新所有最新 的技术和技巧——你必须知道所有最新的趋势,问题和解决方案等.例如跨浏览器 ...

  6. eclipse集成Python开发环境

    话说近期听说 Python 非常牛, 非常强大, 至于到底有多强大, 俺作为一枚菜鸟也就不好发表太多评价. 言归正传, 本文教你在eclipse中安装 Python 插件, 以下我们就跟着步骤一起做吧 ...

  7. Erlang的Web库和框架

    ChicagoBoss,Nitrogen ,Zotontic,BeepBeep,ErlyWeb,Erlang Boss. 转自:http://bbs.chinaunix.net/thread-3764 ...

  8. 演示-JQuery中伪元素和伪类选择器

    HTML代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  9. Linux下的CPU性能瓶颈分析案例

    问题描述: 在对notify执行性能测试时发现cpu负载突然飙高,cpu利用率高达95%.这时候就要排查是哪些线程消耗了cpu,并从代码层找到占用cpu的“罪魁祸首”. 步骤: 1. 先用ps+gre ...

  10. #include”* .h“ 在查找预编译头使用时跳过

    warning C4627: “#include <windows.h>”:  在查找预编译头使用时跳过 解决办法: 原因是没有在cpp文件最前一行添加没有添加 #include &quo ...