[RUBY] Vermeiden Sie das Problem, dass beim Upgrade von Rails 4.2.x auf 5.0.x keine Sitzung abgerufen werden kann, wenn Canary freigegeben wird.

Einführung

--Canary Release ist eine Bereitstellungsmethode, mit der eine neue Version einer Anwendung nur für einen Teil mehrerer Server freigegeben wird.

Es ist unklar, ob jemand zu diesem Zeitpunkt auf Rails 5.0.x (und mit einer kanarischen Version) upgraden wird, aber ich hoffe, es hilft jemandem: bete:

Da der Inhalt für diejenigen gedacht ist, die teilweise mit Ruby und Rails vertraut sind, werden grundlegende Erklärungen wie Sitzung und Rack in Rails weggelassen.

Lösungen

Mit einem Wort die Ursache

Durch das Rails 4.2.x-> 5.0.x-Upgrade wird das Rack-Juwel auf 2.0.8 oder höher aktualisiert. (Es gibt eine destruktive Änderung in der Generierungslogik von session_id in Rack 2.0.7-> 2.0.8)

See. https://github.com/rack/rack/blob/master/CHANGELOG.md#208---2019-12-08

Erläuterung

Lib / Rack / Session / Abstract / In [Rack 2.0.7 ... 2.0.8 Unterschied](https://github.com/rack/rack/compare/2.0.7 ... 2.0.8) Es ist sehr leicht zu verstehen, wenn Sie sich in id.rb, lib /ack / session / memcache.rb umschauen.

Aus den oben genannten Gründen ist es kein Problem, wenn Sie eine neue Version von Rack Gem auf allen Servern gleichzeitig bereitstellen, jedoch in einer Umgebung, in der Rack Gems von 2.0.7 oder weniger und 2.0.8 oder mehr auf jedem Server gemischt sind (Canary Release-Umgebung), "session" Kann nicht mehr erhalten werden.

Recommended Posts

Vermeiden Sie das Problem, dass beim Upgrade von Rails 4.2.x auf 5.0.x keine Sitzung abgerufen werden kann, wenn Canary freigegeben wird.
So lösen Sie das Problem, dass unter iOS14 keine Benachrichtigung angefordert werden kann
[Rails] Behebung des Problems, dass das Sitzungszeitlimit nicht funktioniert
Rails-Tutorial Wenn Rails aufgrund unterschiedlicher Versionen nicht neu erstellt werden können
Eine Geschichte, die sich mit dem Problem befasst, dass REMOTE_ADDR nicht in einem mit Docker Swarm + Traefik (1.7) erstellten Cluster erworben werden kann.
[Rails] So lösen Sie das Problem, dass das Standardbild beim Bearbeiten überschrieben wird, ohne das Bild hochzuladen [Active Storage]
Was tun, wenn in Java der Fehler "Nicht statische Variable x kann nicht aus dem statischen Kontext referenziert werden" angezeigt wird. Lehren aus dem ersten Schritt der Programmierung Hinweis 01
Strict_loading-Funktion zur Unterdrückung des Auftretens von N + 1-Problemen, die von Schienen hinzugefügt wurden 6.1
[Rails] "Pry-Rails", die beim Speichern mit der create-Methode verwendet werden können
767 JSON :: ParserError tritt auf und der lokale Server kann nicht gestartet werden.
Das Problem, dass die von Docker gestartete localhost-Seite vom Browser nicht bestätigt werden kann, wenn die ESET-Firewall ausgeführt wird
[Rails] Beiträge können nicht gelöscht werden, wenn sie kommentiert werden! ??
[Swift5] Problem, dass Cell nicht getippt werden kann, wenn TextView in TableViewCell platziert wird
Lösen Sie das Problem, dass SwiftPM den Proxy nicht überqueren und dem Projekt Pakete hinzufügen kann
[Rails] Was tun, wenn Sie einen Fehler generieren möchten, der nicht behoben werden kann, wenn externe Schlüsselbeschränkungen angewendet werden?