tornado 通过 nginx 反向代理部署后的日志显示问题


当我们使用下面的 nginx 配置部署 tornado 应用后

upstream frontends {
        server 127.0.0.1:8000;
        server 127.0.0.1:8001;
        server 127.0.0.1:8002;
        server 127.0.0.1:8003;
    }

在 tornado.log 中请求ip全部都会显示成 127.0.0.1 ,类似下面这样
[I 130125 21:44:54 web:1447] 200 GET / (127.0.0.1) 16.00ms

如何在 nginx 反向代理的情况下让 tornado.log 中的ip地址也能显示成真实的ip呢?

nginx tornado 日志

三重身碎:梦 11 years ago

如果是反向代理的话可以在nginx 中加入这么一个配置:
proxy_pass http://frontends;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;

便当当当当当 answered 11 years ago

Your Answer