Using the mirror module

Roman Arutyunyan arut at nginx.com
Wed Mar 14 12:33:25 UTC 2018


On Wed, Mar 14, 2018 at 08:55:39AM -0300, Kenny Meyer wrote:
> How do you define a resolver?

Use the "resolver" directive:

http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver

This only makes sense if your nginx resolves domain names in runtime.
In your configuration "staging.example.com" is resolved in runtime because
the entire URL contains a variable ($request_uri).  However, if you put an ip
address instead, you will not need a resolver.

> > On 13 Mar, 2018, at 19:36, Roman Arutyunyan <arut at nginx.com> wrote:
> > 
> > On Tue, Mar 13, 2018 at 06:58:25PM -0300, Kenny Meyer wrote:
> >> Hi Roman,
> >> 
> >>> Are there any errors in error.log?
> >> No errors…
> >> 
> >>> And what happens if you switch www.example.com and staging.example.com?
> >> Then I get redirected to staging.example.com and I don’t see any requests being logged on example.com
> > 
> > Do you have a resolver defined in the http{} block?
> > Proxying to "http://staging.example.com$request_uri" requires a resolver.
> > Normally, you would have "no resolver defined to resolve ..."
> > error logged if resolver is missing, but you may not see it if, for example,
> > your log level is too high.
> > 
> >>> On 13 Mar, 2018, at 18:34, Roman Arutyunyan <arut at nginx.com> wrote:
> >>> 
> >>> Hi Kenny,
> >>> 
> >>> On Tue, Mar 13, 2018 at 05:37:52PM -0300, Kenny Meyer wrote:
> >>>> Hi,
> >>>> 
> >>>> I’m having trouble using the new mirror module. I want to mirror incoming requests from Nginx to other upstream servers. 1) a production server 2) a staging server
> >>>> 
> >>>> This is my config:
> >>>> 
> >>>> server {
> >>>>       listen 80 default_server;
> >>>>       listen [::]:80 default_server;
> >>>> 
> >>>>       location / {
> >>>>           mirror /mirror;
> >>>>           proxy_pass http://www.example.com;
> >>>>       }
> >>>> 
> >>>>       location /mirror {
> >>>>           internal;
> >>>>           proxy_pass http://staging.example.com$request_uri;
> >>>>       }
> >>>> }
> >>>> 
> >>>> So, I request http://myserver.com (where Nginx is hosted) and it successfully redirects me to www.example.com, however I don’t see any requests hitting staging.example.com. 
> >>>> 
> >>>> What could be the error?
> >>> 
> >>> The configuration looks fine.
> >>> Are there any errors in error.log?
> >>> And what happens if you switch www.example.com and staging.example.com?
> >>> 
> >>> -- 
> >>> Roman Arutyunyan
> >>> _______________________________________________
> >>> nginx mailing list
> >>> nginx at nginx.org
> >>> http://mailman.nginx.org/mailman/listinfo/nginx
> >> 
> >> Kenny Meyer
> >> www.kennymeyer.net
> >> 
> >> _______________________________________________
> >> nginx mailing list
> >> nginx at nginx.org
> >> http://mailman.nginx.org/mailman/listinfo/nginx
> > 
> > -- 
> > Roman Arutyunyan
> > _______________________________________________
> > nginx mailing list
> > nginx at nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx
> 
> Kenny Meyer
> www.kennymeyer.net
> 
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx

-- 
Roman Arutyunyan


More information about the nginx mailing list