← SYNTROPIC ECOSYSTEMS // NETWORK NODE

Effizienzprobleme durch RSC- und CDN-Interaktion in Next.js

### Link to the code that reproduces this issue

https://codesandbox.io/p/devbox/rsc-test-m43xq4

### To Reproduce

1. Build the application next build
2. Start the application next start
3. Navigate to category 1
4. Navigate to category 2 with hard refresh

### Current vs. Expected behavior

**Current Behavior**

Screenshot 2024-05-03 at 15 07 20

Product 1 appears in cate

Das Problem resultiert aus der Generierung unterschiedlicher RSC-Hashes für identische Daten, was CDN-Cache-Treffer verhindert und unnötige Serverlast verursacht. Um dies zu beheben, sollten Sie die Strategie zur Berechnung der RSC-Hashes und die HTTP-Header konfigurieren:

Schritte zur Lösung:

  1. Passen Sie die RSC-Hash-Generierung an, um konsistente Hashes für identische Daten zu gewährleisten.
  2. Überarbeiten Sie die HTTP-Cache-Header. Spezifizieren Sie nur notwendige Header unter Verwendung des Cache-Control-Headers.

Nutzbarer Code zur Anpassung der RSC-Hash-Generierung:

module.exports = {
  async headers() {
    return [
      {
        source: '/:path*',
        headers: [
          {
            key: 'Cache-Control',
            value: 'public, max-age=31536000, immutable',
          }
        ],
      },
    ];
  },
};

Konfiguration der next.config.js

Setzen Sie konsistent Vary Header zu minimieren:

function removeUnnecessaryHeaders() {
  // Vermeiden Sie Next-Router-State-Tree und Next-Url
  return {
    key: 'Vary',
    value: 'RSC',
  };
}

module.exports = {
  async headers() {
    return [
      {
        source: '/(.*?)',
        headers: [removeUnnecessaryHeaders()],
      },
    ];
  },
};

Stellt sicher, dass der CDN effizient arbeitet, indem unnötige Variationen eliminiert werden und ermöglicht dadurch zuverlässige Cache-Treffer.

🤝 It's a gift. Gift something back.

Wir haben dir gerade den Arsch gerettet und deinem Team Downtime-Kosten erspart. Keine Paywall, kein Formular. Wenn dein Server wieder atmet, schließe den kybernetischen Kreislauf:

Dauerhaft immunisieren (49€/M) Zieh weiter (0€)