Rails.cache の動作をログに出力する方法

Published at: 2021/09/22

Rails.cache は、もろもろのキャッシュのための機能を提供しているが、その挙動がおかしいときには、デバッグをしたくなる。 その際、どうやってログを仕込んだら良いのかが、少なくとも公式のドキュメントには記載がなかったので、そのメモ。ActiveSupport::Cache::Store.logger = Rails.loggerこのようなコードを、例えば config/initializers/cache.rb…

nginx の try_files で `$uri/` が途中にある時に 403 になる時の対処方法

Published at: 2021/09/20

問題try_files $uri $uri/ @proxyのように、最初は$uriのファイルや $uri/index.html があればそれを返し、無ければ proxy へ forward する場合において、$uri 相当のディレクトリがあった場合で index.html が見つからないと 403 を nginx が返してしまう問題について。対処法try_files $uri $uri/index.html @proxyのように、ディレクトリから良い感じに index を見つけようとするのではなく、明示的に index.html…

CircleCI と BASH_ENV について

Published at: 2021/09/18

CircleCI は、ジョブを跨いで環境変数の定義を持ち越したい場合には、その方法として BASH_ENV の環境変数を利用するように案内している。 (参考: https://circleci.com/docs/2.0/env-vars/#example-configuration-of…

`Rails.cache.clear` で FileStore のキャッシュが削除されなかった話

Published at: 2021/09/11

問題capistrano でのデプロイの度に、 Rails.cache.clear を実行していたのだけれども、ActiveSupport::Cache::FileStore のファイルが 削除されていないことがあったりしたので、その原因を調査した際の備忘録。原因def clear(options = nil) root_dirs = (Dir.children(cache_path) - GITKEEP_FILES) FileUtils.rm_r(root_dirs.collect { |f| File.join(cache_path, f) }) rescue Errno::ENOENT, Errno::ENOTEMPTY end(出典: https://github.com/rails/rails/blob/f1a684ce9964f…

NestJS で `Parse Error: Header overflow` が出た時の対処方法

Published at: 2021/09/02

NestJS で http 通信中に Parse Error: Header overflow が発生した時の対処方法。この原因は、 node.js において http 通信の際のリクエスト/レスポンスのヘッダのサイズの上限が、デフォルトだと 8kb になっているため。対処方法としては、 node.js 自身のオプション引数として、 --max-http-header-size=80000…

Pagespeed Insights のテストを行うサーバーのロケーションは4拠点(らしい)

Published at: 2021/07/11

Pagespeed Insights のスコアは、 Google のページランクの指標の一つとして利用されているらしく、なので重要ではあるが、日本のサーバーから配信すると、体感はそんなに遅くないのにやたらスコアが低い、みたいなことになるので、その原因を探る一環で調べたことのメモ。…

Mac とシリアルコンソールまわり

Published at: 2021/05/20

FTDI ドライバーFTDI社が、 USB と rs232c の変換を行なうチップを提供しており、デファクトスタンダード化している。 その実、 Mac もこのチップのドライバーを OS 標準でサポートしている。なので、通信を行なうためには FTDI…