Nginx负载平衡器未传递原始IP地址
我们正在使用nginx对syslog流量进行负载平衡,但现在syslog服务器看到所有事件都来自nginx负载平衡器的IP地址。如何让nginx“proxy\u pass”方法保持源IP的完整性 nginx.conf(源IP最终成为nginx的) 在另一个回答中,我发现有人使用了“proxy\u bind$remote\u addr transparent”;但是当我尝试我的syslog服务器没有收到任何东西时——取消注释这行就恢复正常(源IP仍然错误) nginx.conf(不向上游服务器传递任何内容):Nginx负载平衡器未传递原始IP地址,nginx,load-balancing,syslog,Nginx,Load Balancing,Syslog,我们正在使用nginx对syslog流量进行负载平衡,但现在syslog服务器看到所有事件都来自nginx负载平衡器的IP地址。如何让nginx“proxy\u pass”方法保持源IP的完整性 nginx.conf(源IP最终成为nginx的) 在另一个回答中,我发现有人使用了“proxy\u bind$remote\u addr transparent”;但是当我尝试我的syslog服务器没有收到任何东西时——取消注释这行就恢复正常(源IP仍然错误) nginx.conf(不向上游服务器传递
events {
worker_connections 1024;
}
stream {
upstream logstash_servers {
server logstash-collector-01:514 max_fails=2 fail_timeout=5s;
server logstash-collector-02:514 max_fails=2 fail_timeout=5s;
}
server {
listen 514;
proxy_pass logstash_servers;
proxy_bind $remote_addr transparent;
}
}
要使ip透明性发挥作用,您必须使NGINX成为上游服务器上的默认网关。最好在X-Forwarded-For报头中传递原始客户机ip,并将其记录下来 要使ip透明性发挥作用,您必须使NGINX成为上游服务器上的默认网关。最好在X-Forwarded-For报头中传递原始客户机ip,并将其记录下来 这里最好的答案是使用
proxy\u bind$remote\u addr transparent代码>在proxy_pass行之后,使nginx成为透明的代理并传递原始IP地址。为了使其工作,您必须指定user root代码>在“main”上下文中(即nginx.conf的顶部,在任何事件{}、流{}等之外)。这里最好的答案是使用代理绑定$remote\u addr transparent代码>在proxy_pass行之后,使nginx成为透明的代理并传递原始IP地址。为了使其工作,您必须指定user root
在“main”上下文中(即nginx.conf的顶部,在任何事件{}、流{}等之外)。但是我不能使用X-Forwarded-For,除非在http
模块内部。在上面的我的配置中,当使用proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For
在我的另一个proxy_pass
行之后,我得到了错误:2017/02/02 03:46:37[emerg]1#1:/etc/nginx/nginx.conf:21 nginx:[emerg]“proxy_set_header”中不允许使用proxy_set_header指令在/etc/nginx/nginx.conf:21中不允许使用指令,但我不能使用X-Forwarded-For,除非在http
模块中。在上面的我的配置中,当使用proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For
在我的另一个proxy_pass
行之后,我得到了错误:2017/02/02 03:46:37[emerg]1#1:“proxy_set_header”指令在/etc/nginx/nginx.conf:21 nginx:[emerg]“proxy_set_header”指令在/etc/nginx/nginx.conf:21中不被允许作为参考,这个nginx文档页面帮助:作为参考,这个nginx文档页面帮助:遵循本文步骤:1。更改Nginx配置(以Root用户身份运行并添加IP透明标头。2.更改Nginx服务器上的IPTables规则。3.在上游服务器上添加路由。按照本文的步骤操作:1.更改Nginx配置(以Root用户身份运行并添加IP透明标头。2.更改Nginx服务器上的IPTables规则。3.在上游服务器上添加路由。
events {
worker_connections 1024;
}
stream {
upstream logstash_servers {
server logstash-collector-01:514 max_fails=2 fail_timeout=5s;
server logstash-collector-02:514 max_fails=2 fail_timeout=5s;
}
server {
listen 514;
proxy_pass logstash_servers;
proxy_bind $remote_addr transparent;
}
}