h2o の ssl-session-resumption のストア先を memcached に
internal がデフォルトで、特に問題もないしずっとこれにしていたが、h2o が再起動されるたびにキャッシュが消えるのではないか? どうせ memcached も起動してるのでそっちにストアすべきではないか? と思いはじめたので変えてみた。
まぁ弱小ウェブサイトだとそもそも resumption かかるようなことがぜんぜんないので意味ない。Google Bot も分散アクセスのせいか全く resumption しないし。
関連エントリー
- ✖ memcached のデータが早々に消えることが多くなっていて困っていた。 https://lowreal.net/2016/12/14/2...
- h2o のログ設定 (logrotate.d) ログの設定を stdout のままにしていたので rotate するように設定しました。(Ubuntu 12.04.5 LTS) h2o の...
- h2o を systemd 管理下にした 徐々に daemontools 依存を外していってるが、とりあえず h2o を systemd に管理にすることにした。どうも daemon...
- h2o の casper を一時的に無効にする h2o の casper (cache-aware server-push) を有効にしていると、force reload したときでも p...
- 現在の h2o.conf.yaml 今のこのサイトの h2o.conf.yaml です。HTTPS (443) のみを処理しています。HTTP (80) は nginx で受け...
となりのトトロに星野源
最近子どもがとなりのトトロにハマってて毎日見てるんだけど、今朝は「お父さん」と「お母さん」が病院で会話しているシーンを見て、「星野源みたいねぇ」「ガッキーみたいねぇ」とか言いだして笑った。メガネかけてると星野源みたいねぇと言うのはしばしばあるんだけど、さらに「ガッキーみたいねぇ」は初めて聞いた。
最近は直接見てないはずなので (というか親が見ようとすると嫌がる)、結構前のを覚えているようだ。
関連エントリー
- 星野源 子どもが「ほしのげん、ほしのげん見た〜い」とか言いだした。なんのことかというと、 今やってるドラマの『逃げるは恥だが役に立つ』のエンディング...
- 「みいつけた」がおもしろい NHK Eテレの番組はそれぞれ対象年齢が設定されていて、「いないいないばぁ」は0〜2歳、「おかあさんといっしょ」は2〜4歳、「みいつけた」は...
- 劇団四季 ライオンキング 大井町の夏劇場で見てきた。妻がチケットをとらなかったら一生見なかったであろう (ミュージカルに興味がないので……)。 箇条書き 急にはじまる...
- 体調不良 朝に悪心で眼が覚め、すこしすると連続した水下痢に。断続的に下痢が出続ける。 悪心もあるので寝ていようとしたが、寝ると夢の中でも下痢をしており...
- 『きっと、うまくいく』を見た きっと、うまくいく [Blu-ray] cho45 アーミル・カーン ★ 5.0 / 5.0 cho45 3時間弱あってなかなか見れなかった...
✖
✖
↑ の写真 webp で Google Photos にアップロードしたんだけど、Chrome で見ても jpeg でしか配信されない。うーん…… いまいち webp 配信の条件がわからない。
Google Photos 上のサムネとかは webp になってるけど、大きめの画像は jpeg 固定なんだろうか
関連エントリー
- Google Photos の webp 対応 前まで webp のアップロードはできなかった気がするんだけど、最近試したらできるようになっていた。 Google Photos はいつから...
- ✖ Lightroom を使わず、Google Photos に上げた JPEG を Google Photos でレタッチかけてみた。
- Google Photos 依存からの脱却 Google Photos が発狂してからと書いてから、いろいろ見積って画像をセルフホストすることに決めた。とにかくアップロード機能はあとで...
- ✖ 桜の季節はいいんだけど、こういう細かい写真はやはり JPEG の圧縮ノイズが非常に気になる。Lightroom で見てるうちは綺麗なのに、J...
- Google Photos の ICC カラープロファイルの扱い Google Photos は配信画像は基本的にすべて sRGB でなっています。 そこで ICC のテスト用 jpeg ファイル や、手元...
Lightroom で webp の一発書きだし
webp のインストール
homebrew で入れる。
$ brew install libtiff $ brew install --HEAD webp
-
- HEAD つけないとコンパイル済みの TIFF 非対応バイナリがインストールされるので注意
Export Actions にシェルスクリプトを置く
~/Library/Application Support/Adobe/Lightroom/Export Actions
にスクリプトを置くと、書き出しダイアログで選べるようになる。書き出したあとスクリプトの引数に現像済みファイル名が渡されるので、これを処理するようにすればよい。
以下のようなファイルを webp.rb という名前で Export Actions フォルダに保存して実行属性をつけておく。
#!/usr/bin/env ruby
require 'logger'
logger = Logger.new('/tmp/webplog')
logger.info ARGV.inspect
begin
ARGV.each do |f|
dir = File.dirname(f)
out = File.join(dir, File.basename(f, ".tif") + '.webp')
logger.info "%s => %s" % [f, out]
IO.popen([
'/usr/local/bin/cwebp',
'-metadata', 'all',
'-preset', 'photo',
'-q', '90',
'-o', out,
'--',
f
], :err=>[:child, :out]) do |io|
while l = io.gets
logger.info l.chomp
end
end
end
rescue Exception => e
logger.fatal e.inspect
end Lightroom の書き出し設定
ファイル設定
- TIFF
- 8 bit/チャンネル
として
「後処理」で「webp」を選ぶ
で書きだし。
問題点
EXIF が消える。cwebp が TIFF の EXIF デコードに非対応のため
関連エントリー
- cwebp はメタデータを削除する WebP に変換するデモコマンドである cwebp はデフォルトでメタデータを全て削除する。ICC プロファイルすら消しさるのでかなりひどい...
- スマートメータから瞬間消費電力を読むRubyのコード スマートメータのBルートサービスで Wi-SUN モジュールを使って瞬間消費電力を読み出す | tech - 氾濫原 にひき続き Wi-SU...
- MQTT のトピックを prometheus に登録する MQTT のトピックを subscribe して一時的に保持し、prometheus 向けに exporter として働くデーモンを書いた。...
- Ruby で sysfs 経由での GPIO 操作 GPIO の操作はいろいろやる方法があるみたいだけど、LL からだと sysfs への IO を行うのが一番簡単っぽい。以下のような感じでか...
- minimist でサブコマンド付きコマンドを実装する node.js 用のコマンドラインパーサである minimist は必要最低限かつわかりやすくていいですね。 しかもサブコマンド用のオプショ...
h2o の proxy.reverse.url で localhost を指定していたら確率的に connection failure
リバースプロキシとして使っている h2o で
proxy.reverse.url: http://localhost:5001/
みたいに書いていたら確率的に connection failure がでて悩んだ。結局
proxy.reverse.url: http://127.0.0.1:5001/
で解決
なぜこうなったか
/etc/hosts に ::1 localhost のエントリ(IPv6)があり、h2o は解決したアドレスのうちからランダムに1つ選択するため。プロキシ先のバックエンドサーバは IPv6 を bind しておらず、::1 が選択された場合に接続に失敗していた。
メモ
- h2o がホストを選択するところ (rand している)
- nginx でも同様の設定をしていたが、nginx はランダムにしないみたい
関連エントリー
- 現在の h2o.conf.yaml 今のこのサイトの h2o.conf.yaml です。HTTPS (443) のみを処理しています。HTTP (80) は nginx で受け...
- nginx の rewrite ルールっぽく h2o の mruby でリクエストの rewrite を行う このサイトのHTTPS化にあたって nginx で書いていた rewrite のルールを h2o の mruby で処理するように変える必要...
- localhost と書くと IPv6 対応したときに死ぬことがある 127.0.0.1 より localhost のほうが書きやすいし良さそう、と思って localhost と書いているとしばしばハマります。...
- lowreal.net のHTTP2/HTTPS 化を実施 全部 HTTPS 対応にしてリダイレクトかけるようにしました。 cho45.stfuawsc.com は既に HTTPS にしてありました。...
- h2o を systemd 管理下にした 徐々に daemontools 依存を外していってるが、とりあえず h2o を systemd に管理にすることにした。どうも daemon...
h2o で listen するポートを増やしたときは master プロセスの再起動が必要
start_server が listen してないポートは以下のようなエラーになる。
cp socket:(null):80 is not being bound to the server
h2o は SIGHUP で graceful restart が可能だが、listen するポートが変わった場合は実際にlistenしている親プロセス (start_server プロセス) の再起動が必要になる。
関連エントリー
- Server::Starter を node.js のサーバ起動に使う Server::Starter は hot deploy 用の汎用スーパーデーモンで、Perl で書かれています。h2o の起動にも使われて...
- h2o を systemd 管理下にした 徐々に daemontools 依存を外していってるが、とりあえず h2o を systemd に管理にすることにした。どうも daemon...
- node.js で Perl における Test::TCP または Ruby における Glint Perl には Test::TCP というのがあって、テスト中、空いてるポートで何かしらのサーバーを起動して使うということができます。Rub...
- さくらのVPSのウェブサーバでIPv6の接続をうける 最初からアドレスついてたので意外とやることない。 ifconfig すると既に v6 のアドレスがついている。Scope:Global にな...
- h2o の casper を一時的に無効にする h2o の casper (cache-aware server-push) を有効にしていると、force reload したときでも p...
nginx をアンインストール
これまで HTTPS (443) だけ h2o で処理していたが、nginx に使ってるぶんのメモリ量がMOTTAINAIのでh2oだけでやるようにした。さようなら nginx。
複雑なことをしているホストは全くなかったので普通に書きかえていっただけ
関連エントリー
- h2o の proxy.reverse.url で localhost を指定していたら確率的に connection failure リバースプロキシとして使っている h2o で proxy.reverse.url: http://localhost:5001/ みたいに書...
- lowreal.net のHTTP2/HTTPS 化を実施 全部 HTTPS 対応にしてリダイレクトかけるようにしました。 cho45.stfuawsc.com は既に HTTPS にしてありました。...
- 現在の h2o.conf.yaml 今のこのサイトの h2o.conf.yaml です。HTTPS (443) のみを処理しています。HTTP (80) は nginx で受け...
- Ubuntu 16.4 LTS クリーンインストールして引越 カスタムOSインストールガイド - Ubuntu 16.04 – さくらのサポート情報 を見ながらインストールまでやる。 旧サーバと同じホス...
- h2o の status/json を mackerel に送る mackerel にメトリクスとして送る mackerel-plugin-h2o みたいなのは今のところないっぽい? ので、status/j...

