しばらくの間、私のチームと私は、クライアントを使用して API サーバーに取り組んできました。別のサーバーを認証サーバーとして使用したいと考えています。下の図を考えてみましょう。
+----------+
| |
| Client |
| |
+-^------+-+
| |
(6) (1)
| |
| |
+-+------v-+ +----------+
| +----(2)-----> |
| Proxy | | Auth |
| <----(3)-----+ |
+-^------+-+ +----------+
| |
(5) (4)
| |
| |
+-+------v-+
| |
| Apache |
| |
+----------+
現在、このリバース プロキシとして Varnish Cache をセットアップしています。これは、1 つの非常に重要な問題まで問題なく動作します。上記のフローを実現するには、クライアントによってヘッダーで提供されたアクセストークンの有効性について認証サーバーがポーリングされた後、ワニスループを再起動する必要があります。ここでの奇妙な点は、POST リクエスト (認証も必要) を送信するときに、再起動ループの後に varnish が POST リクエストの本文を省略することです。API は POST データを受け取りません ( https://www.varnish-cache.org/trac/ticket/652 )。これが私たちが立ち往生しているところです。
主な問題は、図で達成しようとしているフローをどのように実現するかということです。理想的には、varnish をリバース プロキシおよびキャッシュ メカニズムとして使用し続けることですが、別のリバース プロキシをセットアップし、varnish をプロキシと API の間のキャッシュ サーバーにする必要がある場合でも、問題はありません。あなたの助けは大歓迎です!