Welcome! Log In Create A New Profile

Advanced

Re: Nginx Map how to check value if empty

B.R. via nginx
March 06, 2017 07:04AM
Again, it is not empty, nor containing an hyphen...
Look slowly to the log line and compare it to the log format. You use
hyphens as separators, which, again, might not be a good idea at this
precise location.

​The IP address you get is a private one though, so not 'client' but rather
'downstream'.​
​It seems you are hiding behind CloudFlare, you should read their doc to
see how to get the real client IP address. The HTTP header you tried to use
seems to be empty (ie 'dash'.

As for using hyphens rather than real emptiness, I guess that helps
validating there is no real value, ​differentating this case from a bogus
'empty' which would be a sign of a bug.
---
*B. R.*

On Sun, Mar 5, 2017 at 10:50 PM, c0nw0nk <nginx-forum@forum.nginx.org>
wrote:

> Thank's for the info :)
>
> But why is $remote_addr outputting a hyphen instead of the users IP...
>
> I still expect to see the client's IP address.
>
> B.R. via nginx Wrote:
> -------------------------------------------------------
> > That is because it is not: your eyes deceived you having a too quick
> > look
> > at the log line.
> >
> > Your 'empty' variables are actually showing the value '-' in this log
> > line.
> > It probably does not help debugging to have static '-' mixed in the
> > format
> > of your log lines where you put them.
> > ---
> > *B. R.*
> >
> > On Sun, Mar 5, 2017 at 10:00 PM, c0nw0nk <nginx-forum@forum.nginx.org>
> > wrote:
> >
> > > Francis Daly Wrote:
> > > -------------------------------------------------------
> > > > On Fri, Mar 03, 2017 at 10:47:26AM -0500, c0nw0nk wrote:
> > > >
> > > > Hi there,
> > > >
> > > > > map $http_cf_connecting_ip $client_ip_from_cf {
> > > > > default $http_cf_connecting_ip;
> > > > > }
> > > > >
> > > > > How can I make it so if the client did not send that $http_
> > header
> > > > it makes
> > > > > $client_ip_from_cf variable value = $binary_remote_addr
> > > > >
> > > > > Not sure how to check in a map if that http header is present.
> > > >
> > > > If the http header is absent, the matching variable is empty. So
> > it
> > > > will
> > > > have the value "".
> > > >
> > > > Use that as the first half of your "map" pair.
> > > >
> > > > f
> > > > --
> > > > Francis Daly francis@daoine.org
> > > > _______________________________________________
> > > > nginx mailing list
> > > > nginx@nginx.org
> > > > http://mailman.nginx.org/mailman/listinfo/nginx
> > >
> > >
> > > Hey Francis,
> > >
> > >
> > > HTTP BLOCK
> > > log_format cf_custom 'CFIP:$http_cf_connecting_ip - $remote_addr -
> > > $remote_user [$time_local] '
> > > '"$request" Status:$status $body_bytes_sent '
> > > '"$http_referer" "$http_user_agent"'
> > > '$http_cf_ray';
> > > map $status $loggable {
> > > ~^[23] 0;
> > > default 1;
> > > }
> > > access_log logs/access.log cf_custom if=$loggable;
> > >
> > > map $remote_addr $client_ip_from_cf {
> > > default $remote_addr;
> > > }
> > >
> > >
> > > Access.log output
> > > CFIP:- - 10.108.22.40 - - [05/Mar/2017:21:27:50 +0100] "GET
> > >
> > >
> > > Any idea why the remote_addr is empty surely it should display to me
> > the
> > > clients IP address i am not proxying traffic or anything like that.
> > I
> > > expected to see an IP there instead it seems the value is empty.
> > >
> > > Posted at Nginx Forum: https://forum.nginx.org/read.p
> > > hp?2,272744,272766#msg-272766
> > >
> > > _______________________________________________
> > > nginx mailing list
> > > nginx@nginx.org
> > > http://mailman.nginx.org/mailman/listinfo/nginx
> > >
> > _______________________________________________
> > nginx mailing list
> > nginx@nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?2,272744,272768#msg-272768
>
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Nginx Map how to check value if empty

c0nw0nk March 03, 2017 10:47AM

Re: Nginx Map how to check value if empty

Francis Daly March 04, 2017 03:16AM

Re: Nginx Map how to check value if empty

c0nw0nk March 04, 2017 05:35PM

Re: Nginx Map how to check value if empty

c0nw0nk March 05, 2017 04:00PM

Re: Nginx Map how to check value if empty

B.R. via nginx March 05, 2017 04:40PM

Re: Nginx Map how to check value if empty

c0nw0nk March 05, 2017 04:50PM

Re: Nginx Map how to check value if empty

B.R. via nginx March 06, 2017 07:04AM

Re: Nginx Map how to check value if empty

c0nw0nk March 06, 2017 02:12PM

Re: Nginx Map how to check value if empty

Francis Daly March 07, 2017 04:26PM

Re: Nginx Map how to check value if empty

c0nw0nk March 07, 2017 06:44PM

Re: Nginx Map how to check value if empty

c0nw0nk March 08, 2017 01:56AM

Re: Nginx Map how to check value if empty

B.R. via nginx March 08, 2017 04:42AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 251
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready