AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 616422
Accepted
GioMac
GioMac
Asked: 2014-07-30 12:44:45 +0800 CST2014-07-30 12:44:45 +0800 CST 2014-07-30 12:44:45 +0800 CST

Apache mod_remoteip 和访问日志

  • 772

从 Apache 2.4开始,我开始使用mod_remoteip而不是mod_extract_forwarded从前端服务器(varnish、squid、apache 等)提供的x-forwarded- for 重写客户端地址。

到目前为止,所有模块都可以正常工作,即 php、cgi、wsgi 等... - 客户端地址按应有的方式显示,但我无法在访问日志中写入客户端地址(%a、%h、%{c }一个)。不走运 - 我总是得到 127.0.0.1 (本地主机转发前)。

使用 mod_remoteip 时如何记录客户端的 IP 地址?

更新:IT WORKS O_O - 请参阅下面的答案

apache-2.2
  • 2 2 个回答
  • 28470 Views

2 个回答

  • Voted
  1. Best Answer
    GioMac
    2014-08-26T14:19:11+08:002014-08-26T14:19:11+08:00

    清漆配置:

    if (req.restarts == 0) {
        if (req.http.X-Forwarded-For) {
            set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;
        } else {
            set req.http.X-Forwarded-For = client.ip;
        }
    }
    

    apache 2.4 配置部分:

    mod_remoteip:

    RemoteIPHeader X-Forwarded-For
    RemoteIPInternalProxy 127.0.0.1/8
    

    记录(%a 完成这项工作):

    LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    

    +

    如果前面有 nginx(例如 SSL 终止):

    server {
        listen       123.123.123.123:443;
        server_name  server.com;
        root         html;
    
        ssl                  on;
        ssl_certificate      /etc/pki/httpd/site/chain.crt;
        ssl_certificate_key  /etc/pki/httpd/site/private.key;
    
        ssl_session_timeout  5m;
    
        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers   on;
    
        location / {
            proxy_pass   http://127.0.0.1:6081;
            proxy_set_header Host $http_host;
            proxy_pass_header Server;
            proxy_set_header X-Forwarded-For $remote_addr;
        }
    }
    
    • 21
  2. Sgaduuw
    2014-08-26T02:30:17+08:002014-08-26T02:30:17+08:00

    根据mod_remoteip 的文档,模块应该简单地替换客户端 IP 地址,但仅在RemoteIPHeader x-forwarded-for设置时(文档)。还要确保您的虚拟主机的日志记录使用您定义的 CustomLog。

    • 5

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve