Thank you Maxim! That's helpful explanation. -N
On Mon, Nov 24, 2014 at 6:39 AM, Maxim Dounin <[email protected]> wrote: > Hello! > > On Fri, Nov 21, 2014 at 02:53:50PM -0800, neubyr wrote: > > > On Fri, Nov 21, 2014 at 12:11 PM, Maxim Dounin <[email protected]> > wrote: > > [...] > > > > For such cases rewrite is better, IMHO. In some cases it may be a > > > good idea to additionally isolate it with prefix location, like > > > this: > > > > > > location /members/ { > > > rewrite ^/members/(.*) /users/$1 redirect; > > > } > > > > > > > > Thank you Maxim. In what cases prefix might be a good idea?? > > This mostly depends on other configuration in the server{} and > expected workload. That is, it doesn't make much sense to isolate > rewrite if you just have a bunch of rewrites already isolated from > other requests. E.g., consider the following configuration: > > location / { > rewrite ^/members/(.*) /users/$1 redirect; > rewrite ^/images/(.*) /static/$1 redirect; > return 404; > } > > location /users/ { > ... > } > > location /static/ { > ... > } > > This configuration assumes that all the traffic in "location /" > will be redirected, and most normal requests should be handled in > other locations ("/users/", "/static/"). It doesn't make much > sense to bother doing additional isolation with prefix locations > as it's more or less already here. > > On the other hand, consider the following configuration: > > location / { > rewrite ^/members/(.*) /users/$1 redirect; > rewrite ^/images/(.*) /static/$1 redirect; > > proxy_pass http://backend; > } > > In this configuration all requests are handled in "location /". > And for all normal requests to "/users/..." nginx will have to > check all the rewrites. This is just a waste of resources. > Moreover, such a configuration may (and likely will) become hard > to support eventually, and this is probably even more important > thing to consider. So it's usually good idea to use something > like this instead: > > location / { > proxy_pass http://backend; > } > > location /members/ { > rewrite ^/members/(.*) /users/$1 redirect; > } > > location /images/ { > rewrite ^/images/(.*) /static/$1 redirect; > } > > See also this Igor's talk for additional hints on how to write > scalable nginx configurations: > > https://www.youtube.com/watch?v=YWRYbLKsS0I > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx >
_______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
