<div dir="ltr">Your right, I should make a simple test case like you did in the prev message. I'll put that together.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 31, 2016 at 4:29 PM, Francis Daly <span dir="ltr"><<a href="mailto:francis@daoine.org" target="_blank">francis@daoine.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, Mar 31, 2016 at 01:21:02PM -0400, CJ Ess wrote:<br>
<br>
Hi there,<br>
<span class=""><br>
> I would like to have an Nginx setup where I have specific logic depending<br>
> on which interface (ip) the request arrived on.<br>
<br>
</span>multiple server{} with different "listen"; possibly with an "include<br>
common-config" entry.<br>
<br>
Note: "listen" is on an ip, not an interface.<br>
<span class=""><br>
> I was able to make this work by having a server stanza for each ip on the<br>
> server, but was't able to do a combination of a specific ip and a wildcard<br>
> ip (as a catchall) - is there a way to do that with some option combination<br>
> (i.e. nginx listens on *:80, but matches the server stanza by ip?)<br>
<br>
</span>I don't understand what you are describing. Could you try again, perhaps<br>
with a config example?<br>
<br>
When I use<br>
<br>
===<br>
    server {<br>
        listen <a href="http://127.0.0.1:8088" rel="noreferrer" target="_blank">127.0.0.1:8088</a>;<br>
        return 200 "listen <a href="http://127.0.0.1:8088" rel="noreferrer" target="_blank">127.0.0.1:8088</a>\n";<br>
    }<br>
    server {<br>
        listen <a href="http://10.0.1.2:8088" rel="noreferrer" target="_blank">10.0.1.2:8088</a>;<br>
        return 200 "listen <a href="http://10.0.1.2:8088" rel="noreferrer" target="_blank">10.0.1.2:8088</a>\n";<br>
    }<br>
    server {<br>
        listen 8088;<br>
        return 200 "listen 8088\n";<br>
    }<br>
===<br>
<br>
I get the following output, which is what I expect:<br>
<br>
$ curl <a href="http://127.0.0.1:8088/" rel="noreferrer" target="_blank">http://127.0.0.1:8088/</a><br>
listen <a href="http://127.0.0.1:8088" rel="noreferrer" target="_blank">127.0.0.1:8088</a><br>
$ curl <a href="http://127.0.0.2:8088/" rel="noreferrer" target="_blank">http://127.0.0.2:8088/</a><br>
listen 8088<br>
<span class=""><br>
> The scenario I'm playing towards is that I have a dedicated connection to a<br>
> CDN and I want to pass thru certain headers if they arrive via the<br>
> dedicated interface, strip them if they arrive on other interface.<br>
<br>
</span>As above, if "interface" is replaced with "ip", this can work with two<br>
server{} blocks.<br>
<span class=""><br>
> When I did the server{} per IP approach nginx complained about duplicate<br>
> listen settings for the second IP even though both server stanzas were<br>
> bound to a specific port/interface. Is this a bug per chance?<br>
<br>
</span>What short server{} config can I use to reproduce the complaint?<br>
<span class="HOEnZb"><font color="#888888"><br>
        f<br>
--<br>
Francis Daly        <a href="mailto:francis@daoine.org">francis@daoine.org</a><br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</font></span></blockquote></div><br></div>