• Our team is looking to connect with folks who use email services provided by Plesk, or a premium service. If you'd like to be part of the discovery process and share your experiences, we invite you to complete this short screening survey. If your responses match the persona we are looking for, you'll receive a link to schedule a call at your convenience. We look forward to hearing from you!
  • We are looking for U.S.-based freelancer or agency working with SEO or WordPress for a quick 30-min interviews to gather feedback on XOVI, a successful German SEO tool we’re looking to launch in the U.S.
    If you qualify and participate, you’ll receive a $30 Amazon gift card as a thank-you. Please apply here. Thanks for helping shape a better SEO product for agencies!
  • The BIND DNS server has already been deprecated and removed from Plesk for Windows.
    If a Plesk for Windows server is still using BIND, the upgrade to Plesk Obsidian 18.0.70 will be unavailable until the administrator switches the DNS server to Microsoft DNS. We strongly recommend transitioning to Microsoft DNS within the next 6 weeks, before the Plesk 18.0.70 release.
  • The Horde component is removed from Plesk Installer. We recommend switching to another webmail software supported in Plesk.

Resolved [PPP-53248] nginx not returning 404 for non-existing files larger than 1023 bytes

Monty

Silver Pleskian
Plesk Guru
Hello again ;)

I recently discovered an interesting problem and I'd like to share that with you and get your opinion on it before I file a bug report.

Summary: nginx does not return a 404 error when requesting a non-existing static file with a trailing slash in the URL for files larger than 1023 bytes

Steps to reproduce:
  1. Install CentOS 7 64bit, standard installation, all updates applied
  2. Install Plesk Obsidian using the one-click installer with default settings (wget -O - https://autoinstall.plesk.com/one-click-installer | sh)
  3. Log in to Plesk and create a hosting for a domain. Do not change anything else.
  4. Create two files in the httpdocs folder, one of 1023 bytes size and one of 1024 bytes size:
tr -dc A-Za-z0-9 </dev/urandom | head -c 1023 >1023.html
tr -dc A-Za-z0-9 </dev/urandom | head -c 1024 >1024.html

Now perform the following tests:

Note:

Workaround:
  • Disable "Smart static files processing" in "Apache & nginx settings" then the behaviour is as expected (404 error) when loading the URL with the trailing slash for the 1024 byte file.

Pretty interesting behaviour, eh? I'm trying to figure out where this 1024 byte limit originates from but maybe somebody of you has a smart idea....?
 
  • Like
Reactions: mow
hello @Monty ,

the bug is confirmed.
We will fix it in the nearest Obsidian update (18.0.36) which will be released soon.

Unfortunately the reason of this behavior is unclear for now.

And thank you for this report - you help us to make Plesk better.
 
I noticed this was fixed in 18.0.36 - purely out of curiosity, is Plesk able to shed some light into what caused this?
 
@john0001 ,

behavior of mod_aclr2 changed if request contains trailing path
such request should be rejected by default or if AcceptPathInfo is set to Off
 
After auto updating to 18.0.36 our Node.js WebSocket backend (a) production) was no longer available for any client. We restored previous VM image and are currently investigating the issue one a second (fresh) plesk installation (already 18.0.36, b) ). During setup second new plesk identical like first, we discovered following issue:

In "Apache & nginx Settings" we configure some "Additional nginx directives". To get it work (enable websocket clients to connect to our websocket backend) we have:
a) production (restored 18.0.35) : "location /api1/"
b) second fresh (18.0.36): "location api1"

api1 isn't a directory or a file. It's just an url suffix for backend versioning.

If we remove slashes on a), clients cannot connect anymore. If we add slashed on b) clients cannot connect anymore. In the error case of b) proxy_error_log shows
Code:
[error] 11523#0: *149 connect() failed (111: Connection refused) while connecting to upstream, client: 1.2.3.4, server: xxx.yyy.com, request: "GET /api1/healthcheck HTTP/1.1", upstream: "http://127.0.0.1:8001/api1/healthcheck", host: "xxx.yyy.com"

Could your fix be responsible for our problems after updating a) to 18.0.36?
 
Last edited:
@Schlaubi,
an proxy_error_log looks like processing of this location was routed to the apache,
which did not respond (need to check apache logs).

It is necessary to check what exactly location was processed in fact
and how really this location handled

It would be better to submit this issue to the support (with the link to this forum thread or mention to ppp-53248)
so we can investigate it more dipper.

Based on provided info I can't answer is this a result of our fix or not.
 
Back
Top