nginxでアクセスログにhttp2の通信か出力する http/2はこちら。(2015/08/18追記)
nginx 1.5.10でspdy3.1に対応されました。
ふと、nginx側のログでspdyを使ってのアクセスか確認する方法が気になって試してみた。
設定
結論としてはlog_formatを使うだけ
nginx.conf
http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" ' 'spdy:$spdy'; access_log /var/log/nginx/access.log main; server { listen 80; server_name localhost; ...
このように、log_formatの部分に$spdyを加えるだけ。
出力
以上の設定を行い、nginxを再起動すると
192.168.0.21 - - [06/Feb/2014:16:20:17 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" "-" spdy:3.1
このように、spdyのバージョンが表示されました。
非対応ブラウザの場合、spdyのバージョンは何も表示されません
192.168.0.21 - - [06/Feb/2014:16:24:01 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" "-" spdy: