Здравствуйте, Максим! On 15.12.2021 1:33, Maxim Dounin wrote:
Воспроизводится ли проблема на приведённом конфиге в чистом виде, без каких-либо других location'ов и/или rewrite'ов? Если да - то как выглядит минимальный конфиг, на котором проблема воспроизводится, полностью (nginx -T)? Что показывает nginx -V? Что в debug log'е?
Воспроизводится на таком конфиге: # nginx -T error_log /var/log/nginx/error.log debug; events { use epoll; } http { server { server_name example.com; location / { proxy_pass http://127.0.0.1; } location /download/ { proxy_pass http://127.0.0.2; } } } # nginx -V показывает nginx version: nginx/1.21.4 - это официальный бинарник nginx-1.21.4-1.el8.ngx.x86_64.rpm с сайта http://nginx.org/packages/mainline/centos/8/x86_64/RPMS/ В debug log'е так: http process request line http request line: "GET /download HTTP/1.1" http uri: "/download" http args: "" http exten: "" posix_memalign: 000055D246233D50:4096 @16 http process request header line http header: "Host: example.com" http header: "User-Agent: curl/7.61.1" http header: "Accept: */*" http header done event timer del: 3: 29402186335 generic phase: 0 rewrite phase: 1 test location: "/" test location: "download/" using configuration "/download/" http cl:-1 max:1048576 http finalize request: 301, "/download?" a:1, c:1 http special response: 301, "/download?" http set discard body HTTP/1.1 301 Moved Permanently Server: nginx/1.21.4 Date: Wed, 15 Dec 2021 06:54:06 GMT Content-Type: text/html Content-Length: 169 Location: http://example.com/download/ Connection: keep-alive Перечитал еще раз документацию на сайте nginx.org - запрос "/download" должен попадать в location "/" Но запрос "/download" обрабатывается в location "/download/" это BUG в самом nginx или это BUG в документации к nginx ? Проверил на такой конфигурации: # nginx -T error_log /var/log/nginx/error.log debug; events { use epoll; } http { server { server_name example.net; location / { return 200 "main locaton\n\n"; } location /download/ { return 200 "download location\n\n"; } } } Тут все отрабатывает как и должно быть согласно документации. В debug log'е так: http process request line http request line: "GET /download HTTP/1.1" http uri: "/download" http args: "" http exten: "" posix_memalign: 000055D24625B920:4096 @16 http process request header line http header: "Host: example.net" http header: "User-Agent: curl/7.61.1" http header: "Accept: */*" http header done event timer del: 3: 29403087747 generic phase: 0 rewrite phase: 1 test location: "/" test location: "download/" using configuration "/" http cl:-1 max:1048576 rewrite phase: 3 http set discard body HTTP/1.1 200 OK Server: nginx/1.21.4 Date: Wed, 15 Dec 2021 07:09:07 GMT Content-Type: text/plain Content-Length: 14 Connection: keep-alive -- Best regards, Gena _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru