#Nginx
In case you're also looking for "the provided Nginx configuration" that #mastodon's release notes say you may want to update: I found in https://docs.joinmastodon.org/admin/install/#setting-up-nginx that it is provided in `dist/` within the repository.

#mastoadmin
November 3, 2026 at 11:28 PM
Nginx access logs are usually grep'd after the fact. This 200-line beginner script tails them live instead: top-N IPs, paths, status codes as traffic hits. #python #monitoring #nginx https://www.valtersit.com/python/nginx-access-log-real-time-parser/
Nginx Access Log Real-Time Parser
www.valtersit.com
November 3, 2026 at 10:10 PM
Fix `nginx upstream timed out 110` by increasing `proxy_read_timeout` in `nginx.conf` and verifying backend Docker health. If persistent, migrate to robust InterServer VPS: https://www.interserver.net/r/1196747?id=blueskysocia_1103 (#ad)

---
**Further Technical Reading:**
- [Review the related arch
November 3, 2026 at 9:53 PM
Docker said healthy. Our Laravel deployment still failed readiness.
The candidate containers started. Nginx accepted its configuration. Docker marked the application healthy. Our blue-green deployment still stopped: Candidate blue did not become ready; the public upstream was not changed. Candidate was not activated; the previous HTTP release is still serving. This was a real failure in our Laravel deployment after we tightened hostname validation. The probe reached the right container and sent the wrong HTTP hostname. The working release stayed online because the probe ran before the traffic switch. Here is how we diagnosed the mismatch without disabling the protection. ## What “healthy” meant in this deployment Our PHP-FPM container healthcheck validates the FPM configuration and opens its local TCP listener. It does not send a request through Nginx into Laravel. The deployment helper makes a separate request to `/health` through the candidate web container. It requires HTTP 200 and JSON containing `"status":"ok"` before switching the gateway. Those checks were measuring different things: Check | What it established ---|--- FPM configuration and local socket | The configured process could accept a connection Candidate HTTP readiness | The candidate web/application path accepted this request Public HTTPS check | The externally exposed path worked for the checked URL This is our configuration, not a universal definition of Docker health. A Docker healthcheck can make an HTTP request too. Its result only tells you about the test you configured. ## The URL contained a hidden assumption Our candidate web server was reachable as `web-blue` on its private Docker network. A diagnostic request from that network looked like this: # Run from a container on the candidate's Docker network. curl --noproxy '*' --connect-timeout 2 --max-time 5 \ -sS -o /dev/null -w '%{http_code}\n' \ http://web-blue/health The connection target was correct. But curl also sent `Host: web-blue`. After hostname protection was enabled, Laravel rejected that name. Docker DNS resolving a service does not make the service name an allowed application hostname. There were two separate values to inspect: Connection destination: web-blue:80 Application hostname: app.example.test `app.example.test` is a placeholder here. In our deployment, the expected hostname comes from the server-controlled `APP_URL`. Nginx may also use Host to choose the virtual server, so the same class of mistake can happen before PHP is involved. See Nginx request processing. In our application, the allowlist also existed in Laravel; bypassing the public proxy did not bypass that check. ## Change the Host, not the destination The corrected private HTTP probe still connected to the candidate: curl --noproxy '*' --connect-timeout 2 --max-time 5 \ -sS -o /dev/null -w '%{http_code}\n' \ -H 'Host: app.example.test' \ http://web-blue/health Changing the URL to the public domain alone would have been a bad test: public DNS could send the request to the old release. We needed evidence about the new slot. An equivalent curl diagnostic uses `--connect-to`: curl --noproxy '*' --connect-timeout 2 --max-time 5 \ -sS --connect-to app.example.test:80:web-blue:80 \ http://app.example.test/health The URL supplies the application identity while the connection override selects the candidate. These examples use HTTP on a private hop. If your candidate terminates HTTPS, use the intended hostname in the HTTPS URL and connect it to the candidate's TLS port. Overriding only Host does not change the TLS SNI or the certificate hostname being verified. curl documents that distinction. The TLS variant is documentation-based guidance; the reproduction below tests HTTP. ## A small reproduction, without Laravel To isolate the cause, we used this Nginx fixture: server { listen 80 default_server; server_name app.example.test; if ($http_host !~* "^app\.example\.test(?::[0-9]{1,5})?$") { return 421; } location = /health { default_type application/json; return 200 '{"status":"ok","version":"candidate"}'; } } This is deliberately a synthetic HTTP boundary. Its container healthcheck runs `nginx -t`; it is not a reproduction of PHP-FPM or the full Laravel application. The local checks produced: Request/check | Result ---|--- Synthetic container healthcheck | Healthy Host `web-blue` | HTTP 421 Host `app.example.test` | HTTP 200 and expected JSON Host `app.example.test:443` over the HTTP fixture | HTTP 200 and expected JSON Host `other.example.test` | HTTP 421 `--connect-to` with the canonical hostname | HTTP 200 and expected JSON The explicit `:443` case checks Host parsing only; it is not a TLS test. These results were reproduced locally on November 3, 2026, with an isolated Nginx container. No production settings were changed. ## The release gate needed more than the right header The curl status-only command is useful for diagnosis. Our activation gate also parses the response body. A generic Nginx welcome page returning 200 must not count as a ready Laravel application. We kept these requirements in the helper: * Connect to one of the two known candidate services. * Derive Host from validated deployment configuration, including an explicit port when configured. * Require HTTP 200 and the expected JSON health status. * Do not follow redirects: a redirect might land on the active release or a login page. * Bound each request and the overall readiness wait. * Supply required staging Basic Auth from server-side configuration, without logging credentials. A fast 421 was the useful clue in this case. A 401, timeout, connection refusal or 502 needs its own investigation. Increasing the timeout cannot fix a request that is deterministically rejected for its Host. We did not add the Docker service names to the public allowlist. We also retained a negative check: an unrelated hostname still had to fail after the canonical hostname started passing. ## The failed deployment was the safer result The order of operations mattered: Start candidate → check candidate → switch gateway → verify selected slot When readiness failed, the gateway still pointed at the working slot. Fixing the probe allowed the candidate through the same gate; it did not remove the gate. That does not prove every release is safe. Database migrations must remain compatible with both slots, and a successful `/health` does not exercise login, checkout, queue processing or the public CDN path. The change we needed was small: preserve the candidate destination and send the configured application hostname. If your containers are healthy but a release is stuck, inspect the exact request your deployment helper sends before loosening the application policy. Adapted from our original deployment incident write-up. Disclosure: this adaptation was prepared with an AI coding agent from the project's incident notes, deployment code and existing article. The HTTP reproduction was rerun locally; this is not an independently measured production availability claim.
dev.to
November 3, 2026 at 8:32 PM
📦 phporbit/phporbit v1.5.0

A safe PHP framework that runs identically on its own server, FrankenPHP, nginx+FPM and Apache.

🔗 https://github.com/tekki3/phporbit
November 3, 2026 at 8:00 PM
Two months ago I barely knew what a Docker container was - now we're running Jellyfin and Navidrome through an nginx reverse proxy on my Fedora NAS using Portainer, and I just set up a working Navidrome -> Sonos S2 integration after a few hours of fiddling. No more Plex or Youtube Music. Onward!
November 3, 2026 at 7:46 PM
My homelab has two front doors.

Everything private comes in over Tailscale to one Nginx box. The only public service, an Appwrite backend, gets its own smaller Nginx container behind a Cloudflare Tunnel, and that config handles nothing else.

Overkill for one public app?

#homelab
November 3, 2026 at 7:05 PM
Nginx RSS Feed: Content Type, Caching and Compression
#PostRSS #MarketingAutomation #Productivity #MarketingTips

https://postrss.com/nginx-rss-feed-caching-content-type/
Nginx RSS Feed: Content Type, Caching and Compression #PostRSS #MarketingAutomation #Productivity #MarketingTips
postrss.com
November 3, 2026 at 5:03 PM
Nice, automated certs are a big relief. For the maintenance page, I check for a flag file in Nginx and return 503 with error_page pointing at a static html file. Then you just touch or delete the file, no reload needed.
November 3, 2026 at 4:44 PM
Always fun to spot a GO Feature Flag sticker on a laptop out in the wild 🐹 Even better when it sits right next to OpenFeature.

Want some for your laptop? Reach out and we'll send a few your way 💜
November 3, 2026 at 4:24 PM
Kubernetes「CVE-2025-1974」はCVSS 9.8、認証不要のコード実行でクラスター侵害のおそれ Ingress NGINXは2026年3月に保守終了|セキュリティニュースのセキュリティ対策Lab
https://rocket-boys.co.jp/security-measures-lab/cve_2025_1974_ingressnightmare_kubernetes_ingress_nginx_eol_20261102/
Kubernetes「CVE-2025-1974」はCVSS 9.8、認証不要のコード実行でクラスター侵害のおそれ Ingress NGINXは2026年3月に保守終了|セキュリティニュースのセキュリティ対策Lab
rocket-boys.co.jp
November 3, 2026 at 2:33 PM
The nginx Deployment from the Kubernetes docs gets a D (42/100) in Shipshape: 4 Pod Security Standards "restricted" checks fail, and there's no memory limit.

We built Shipshape. Here's what's missing, the A version, and a GitHub Action for your pull requests 👇
Lint your Dockerfile and K8s manifests against Pod Security Standards in one call
The nginx Deployment from the Kubernetes docs scores a D. Here's what's missing, how to fix it, and how to add the same check to every pull request.
dev.to
November 3, 2026 at 2:30 PM
Alerta de segurança no Plone: a correção de uma falha de execução remota de código sai em 10/11, às 10h (Brasília).

Bloqueie já as URLs com portal_modifier. Exemplos para Apache, nginx e Traefik:
plone.org.br/novidades/no...
November 3, 2026 at 2:00 PM
Managed to do some further work on the Postgres server. SSL cert updates are now fully automated, which takes some pressure off. My next task is going to be getting a full maintenance page up and running. I'm probably going to use some logic in the Nginx config to switch in the maintenance page […]
Original post on gamepad.club
gamepad.club
November 3, 2026 at 1:29 PM
OK, I've just about got my family Nextcloud migrated onto my home cluster 🎉 The cluster is three nodes running Proxmox VE, and Nextcloud is running on a NixOS VM for declarative config & deployment.

Got a cheap Hetzner box linked up to it via wireguard, with a full nginx reverse proxy, but […]
Original post on digipres.club
digipres.club
November 3, 2026 at 11:11 AM
Log Line Explainer

Paste one log line or record — nginx, syslog, Windows event XML, CloudTrail, Entra ID, CrowdStrike, CEF, PAN-OS — and see what every field means, with codes, times and addresses decoded. Runs in your browser.

https://logtriage.app/tools/log-record-explainer/

#infosec #blueteam
Log Line Explainer: What Each Field of a Log Record Means
Paste one log line or record — nginx, syslog, Windows event XML, CloudTrail, Entra ID, CrowdStrike, CEF, PAN-OS — and see what every field means, with codes, times and addresses decoded. Runs in your browser.
logtriage.app
November 3, 2026 at 7:55 AM
26 NGINX security fixes this year, five more on 14 Oct. F5 rates three critical: one crafted request, no login, can crash the server, with certain settings. Fix: 1.30.6 or 1.31.7.

Do you know which web server your site runs, and who updates it? https://mop.dev
November 3, 2026 at 7:24 AM
Stop thundering herds at your nginx origin shield: proxy_cache_lock queues concurrent misses so one request hits upstream, while stale-while-revalidate and stale-if-error keep serving during. https://www.valtersit.com/vault/nginx-reverse-proxy-with-proxy-cache-lock-and-stalewhilereva-e9d972/
nginx Reverse Proxy with Proxy Cache Lock and Stale-While-Revalidate
www.valtersit.com
November 3, 2026 at 7:10 AM
🚀 How to Deploy Open edX on #Ubuntu #VPS (1 Hour Quick-Start Guide)

This article provides a start-to-finish, production-ready guide demonstrating how to deploy Open edX on ...
Continued 👉 #openedx #education #nginx #elearning #mongodb #letsencrypt #learningmanagementsystem #django #opensource
🚀 How to Deploy Open edX on Ubuntu VPS (1 Hour Quick-Start Guide)
blog.radwebhosting.com
November 3, 2026 at 6:55 AM
Leoxy is now public and ready for testing! I'm excited to see how it performs in real-world use and what bugs or issues will show up. Try it, break it, and share your findings. Every bit of feedback helps!

github.com/elrefai99/Le...

#Dev #Nginx #Go #Golang #OpenSource #Networking
November 3, 2026 at 6:45 AM
nginxに毎日のようにFreeBSDローカルのパッチが当たっていて、これ絶対やべえやつやと思っていたけど、実態はサードパーティーモジュールの更新だらけだった。いやそれでもサードパーティーモジュールになんかあったんだろうなあ…
November 3, 2026 at 2:30 AM
「悪質なクローラーを片っ端からNginxの444で叩き落とすのは気持ちいいけれど、AI検索用のボットまで遮断してしまっていないか?」ChatGPTの「Search with Bing / ChatGPT Search」や […]
【AI検索時代】SearchBotとどう付き合う?ブロックすべき悪質Botと歓迎すべきAIクローラーの選別基準
「悪質なクローラーを片っ端からNginxの444で叩き落とすのは気持ちいいけれど、AI検索用のボットまで遮断してしまっていないか?」ChatGPTの「Search with Bing / ChatGPT Search」や […]
tech.nanka-yoshi.com
November 3, 2026 at 2:00 AM
Dead internet theory feels more real than ever... I knew it was bad, but not this bad. Here's what I did to filter out the bots to get a clearer view in my dashboard.

PS: it's 90% AFTER the user-agent filter!
90% of my "human" visitors were bots | Luna Park
My nginx dashboard counted 2.5k human visitors in a week. Checking which IPs loaded the CSS, and which cloud they came from, brought it down.
luna-park.app
November 3, 2026 at 1:24 AM