【发布时间】:2014-11-02 11:01:52
【问题描述】:
我通过 gunicorn、supervisor 和 nginx 作为反向代理运行 django 应用程序,并且努力让我的 gunicorn 访问日志显示实际 ip 而不是 127.0.0.1:
目前的日志条目如下所示:
127.0.0.1 - - [09/Sep/2014:15:46:52] "GET /admin/ HTTP/1.0" ...
supervisord.conf
[program:gunicorn]
command=/opt/middleware/bin/gunicorn --chdir /opt/middleware -c /opt/middleware/gunicorn_conf.py middleware.wsgi:application
stdout_logfile=/var/log/middleware/gunicorn.log
gunicorn_conf.py
#!python
from os import environ
from gevent import monkey
import multiprocessing
monkey.patch_all()
bind = "0.0.0.0:9000"
x_forwarded_for_header = "X-Real-IP"
policy_server = False
worker_class = "socketio.sgunicorn.GeventSocketIOWorker"
accesslog = '-'
我的 nginx 模块配置
server {
listen 80;
root /opt/middleware;
index index.html index.htm;
client_max_body_size 200M;
server_name _;
location / {
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_redirect off;
real_ip_header X-Real-IP;
}
}
我在 location {} 块中尝试了各种组合,但看不出有什么不同。任何提示表示赞赏。
【问题讨论】:
标签: django nginx gunicorn supervisord