From: Max L. <max...@gm...> - 2010-10-05 19:28:24
|
There are some forks of yaws on github. Which one is right, or you are not using github for development? |
From: Steve V. <vi...@ie...> - 2010-10-05 19:54:11
|
On Tue, Oct 5, 2010 at 3:28 PM, Max Lapshin <max...@gm...> wrote: > There are some forks of yaws on github. Which one is right, or you are > not using github for development? http://github.com/klacke/yaws All Yaws development is done in github. Not sure of other forks, but I have a fork where I'm currently goofing with some changes that I want to keep separate for now, but if they pan out I'll bring them quickly over to the main repo above. --steve |
From: Max L. <max...@gm...> - 2010-10-05 20:00:38
|
I wanted to fix this place: http://github.com/klacke/yaws/blob/master/src/yaws_server.erl#L1073 Yaws is hidden behind nginx and I can't find out client IP and logs are spoiled by 127.0.0.1. Maybe it would be better to fix this place to read some nginx headers? |
From: Steve V. <vi...@ie...> - 2010-10-05 20:26:28
|
On Tue, Oct 5, 2010 at 4:00 PM, Max Lapshin <max...@gm...> wrote: > I wanted to fix this place: > > http://github.com/klacke/yaws/blob/master/src/yaws_server.erl#L1073 > > Yaws is hidden behind nginx and I can't find out client IP and logs > are spoiled by 127.0.0.1. Maybe it would be better to fix this place > to read some nginx headers? > You're using nginx as a reverse proxy in front of Yaws, I assume. In that case, nginx truly is the client to Yaws, so the client IP really is 127.0.0.1:<port>. Why does that mess up the logs? I don't think it would be right to modify the code with nginx-specific changes, since using other web servers in a reverse proxy setup is also possible. But I would like to understand what you'd prefer to the current behavior just so I'm not missing something, and in case there's something we can improve for the community. --steve |
From: Max L. <max...@gm...> - 2010-10-05 20:28:00
|
On Wed, Oct 6, 2010 at 12:26 AM, Steve Vinoski <vi...@ie...> wrote: > You're using nginx as a reverse proxy in front of Yaws, I assume. In > that case, nginx truly is the client to Yaws, so the client IP really > is 127.0.0.1:<port>. Why does that mess up the logs? > Because there will be no sence in client_ip field at all: ALL requests will come from 127.0.0.1, which is wrong. |
From: Steve V. <vi...@ie...> - 2010-10-05 20:30:19
|
On Tue, Oct 5, 2010 at 4:27 PM, Max Lapshin <max...@gm...> wrote: > On Wed, Oct 6, 2010 at 12:26 AM, Steve Vinoski <vi...@ie...> wrote: >> You're using nginx as a reverse proxy in front of Yaws, I assume. In >> that case, nginx truly is the client to Yaws, so the client IP really >> is 127.0.0.1:<port>. Why does that mess up the logs? >> > > Because there will be no sence in client_ip field at all: ALL requests > will come from 127.0.0.1, which is wrong. Right, but in the reverse proxy case, it's really nginx logs you're interested in as far as client connections go, not yaws logs, right? --steve |
From: Max L. <max...@gm...> - 2010-10-05 20:32:25
|
> > Right, but in the reverse proxy case, it's really nginx logs you're > interested in as far as client connections go, not yaws logs, right? > of course no =)) I've started yaws for exactly one service and want to read its logs. |
From: Steve V. <vi...@ie...> - 2010-10-05 21:21:18
|
On Tue, Oct 5, 2010 at 4:32 PM, Max Lapshin <max...@gm...> wrote: >> >> Right, but in the reverse proxy case, it's really nginx logs you're >> interested in as far as client connections go, not yaws logs, right? >> > > of course no =)) I've started yaws for exactly one service and want > to read its logs. Perhaps we can add a config variable to have yaws set the client IP from X-Real-IP or X-Forwarded-For rather than calling peername on the socket to get it. Something like this: http://wiki.nginx.org/NginxHttpRealIpModule This seems like it would resolve your issue and also would be generally useful. If you want to take a crack at this, the best way is to fork the repo, create a branch, make the changes, and then email us with the branch name, sorta how they do it for Erlang/OTP. --steve |
From: Max L. <max...@gm...> - 2010-10-05 21:27:50
|
On Wed, Oct 6, 2010 at 1:21 AM, Steve Vinoski <vi...@ie...> wrote: > > Perhaps we can add a config variable to have yaws set the client IP > from X-Real-IP or X-Forwarded-For rather than calling peername on the > socket to get it. Something like this: Yes, this is what exactly I'm speaking about. I can hardly imagine yaws begind Apache, but nginx or haproxy may be in front. |