Replies: 2 comments
-
|
Thank you for reaching out! I'm thrilled to see the new graceful upgrade features in the dev branch. Regarding the Windows support, here is my review and thoughts on how we can handle these Linux-specific changes: OS signalsWindows does not support SIGINT, SIGTERM, or SIGQUIT; instead, it uses CTRL_C_EVENT, which is equivalent to SIGINT. Even though CTRL+C was sent, pingora behaves as if it received SIGTERM. In other words, on Windows, at a minimum, we must specify the following: grace_period_seconds: 0 // In Windows environments where a graceful shutdown is not supported, this should be set to 0.This is the best we can do to produce consistent logs like the following: PID fileYou might want to set the output directory for PID files to Graceful upgrades & sd_notifyTo be honest, no one expects "live graceful upgrades" on Windows, so please don't worry about it at all! Windows does not use systemd; instead, it uses Windows Services (Service Control Manager). Registration with Windows Services is handled by dedicated applications such as NSSM or Shawl (also a Rust project), so there is no need to write any additional code in individual applications. So, the best and cleanest approach is to completely disable the live upgrade code on Windows using To be completely honest, I’m actually a total beginner when it comes to running production reverse proxies. I just happened to find Aralez while evaluating tools for our internal company applications, and I've been experimenting with it on Windows. So I might not know all the best practices, but from my testing on Windows, here is my review and thoughts... |
Beta Was this translation helpful? Give feedback.
-
|
I've added Windows support to the latest commit by sadoyan/aralez. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
@Taqman-probe
I know you are working on Windows fork of Aralez and that's great . Thank you for that.
In current dev branch I have implemented honoring of OS signals and writing PID file (hardcoded as
/tmp/aralez.pidfor now )This is for graceful upgrades with zero session loss during it . So you can upgrade the binary on the fly and no one will even notice, that something happened.
For that I wrote some code, which may be very specific to Linux. Can you please review it and share your thoughts about implementing the same for Windows as well ?
Related changes are:
start.rslines 116 -> 135webserver.rslines 78 -> 96For that I have added
sd-notifydependency, should be pure for Linux.Please share your thought .
Thanks !
Beta Was this translation helpful? Give feedback.
All reactions