Nginx servers on both *:80 and <ip>:80? also duplicate listen parameters error when binding by just specific ips
Francis Daly
francis at daoine.org
Thu Mar 31 20:29:28 UTC 2016
On Thu, Mar 31, 2016 at 01:21:02PM -0400, CJ Ess wrote:
Hi there,
> I would like to have an Nginx setup where I have specific logic depending
> on which interface (ip) the request arrived on.
multiple server{} with different "listen"; possibly with an "include
common-config" entry.
Note: "listen" is on an ip, not an interface.
> I was able to make this work by having a server stanza for each ip on the
> server, but was't able to do a combination of a specific ip and a wildcard
> ip (as a catchall) - is there a way to do that with some option combination
> (i.e. nginx listens on *:80, but matches the server stanza by ip?)
I don't understand what you are describing. Could you try again, perhaps
with a config example?
When I use
===
server {
listen 127.0.0.1:8088;
return 200 "listen 127.0.0.1:8088\n";
}
server {
listen 10.0.1.2:8088;
return 200 "listen 10.0.1.2:8088\n";
}
server {
listen 8088;
return 200 "listen 8088\n";
}
===
I get the following output, which is what I expect:
$ curl http://127.0.0.1:8088/
listen 127.0.0.1:8088
$ curl http://127.0.0.2:8088/
listen 8088
> The scenario I'm playing towards is that I have a dedicated connection to a
> CDN and I want to pass thru certain headers if they arrive via the
> dedicated interface, strip them if they arrive on other interface.
As above, if "interface" is replaced with "ip", this can work with two
server{} blocks.
> When I did the server{} per IP approach nginx complained about duplicate
> listen settings for the second IP even though both server stanzas were
> bound to a specific port/interface. Is this a bug per chance?
What short server{} config can I use to reproduce the complaint?
f
--
Francis Daly francis at daoine.org
More information about the nginx
mailing list