On Wed, Oct 09, 2019 at 01:54:58PM -0400, Alex Med wrote: Hi there,
> Here is the full configuration with reverse proxy, pagespeed,and > lowercasing. It all > works well, but now that I incorporated removing the trailing slash it > brought up new > issues: https://pastebin.com/keQ239D4. Let me know if you prefer that I > post the configurations > in the post. Thanks for this. Some of this configuration is not "stock nginx", but I guess that the extra modules do not affect the issue here. It would be convenient for history here, to have the config here; but the relevant part is basically the part shown in the previous mail. Most requests eventually use a proxy_pass to an upstream server. > This is with the "evil if" enable, I get the following response when it is a > directory such as the blog directory: I suspect that there may be an interpretation issue here. When I read "the blog directory", I understand something along the lines of "/usr/local/nginx/html/blog/index.html exists as a file that nginx can see". I now suspect that you intend something like "the upstream server considers it to be a directory". > curl -i http://example.com/blog/ > HTTP/1.1 301 Moved Permanently > Server: nginx > Date: Wed, 09 Oct 2019 15:06:04 GMT > Content-Type: text/html > Content-Length: 178 > Location: http://example.com/blog > Connection: keep-alive That's from nginx; your config says "if the request ends in / and does not represent a directory on this filesystem, redirect to no-slash". > curl -i http://example.com/blog > HTTP/1.1 301 > Server: nginx > Date: Wed, 09 Oct 2019 15:06:48 GMT > Content-Length: 0 > Connection: keep-alive > Location: /blog/ > Cache-Control: s-maxage=10 That's from your upstream server. Presumably it has decided that "/blog refers to a directory as far as it is concerned; please request /blog/ instead". And there is your infinite loop. So I guess the next question is: what response do you want from nginx? In this specific case: when you request /blog/, how would you like nginx to handle that request? And in your answer, also consider: how might nginx possibly be able to tell that you want the request handled differently from a request for /file/? > >>Does the proxy_pass upstream > >>share the same filesystem as this nginx? > No, they do not share the same file system. "if -d" looks on the filesystem. try_files looks on the filesystem. If the filesystem does not contain the information on whether "this" thing is a directory or not, looking on the filesystem will not be able to give a useful answer. So, what specific problem are you trying to solve? If you remove the "remove the slash" configuration from nginx, is there one request that gets a response that you do not want? Perhaps fixing the handling of *that* request will get you to a config that does what you want. f -- Francis Daly fran...@daoine.org _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx