ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

Apacheで圧縮(mod_deflate)とキャッシュ(mod_expires)を設定してみた

特に何も考えずに設定を追加

利用しているwordpressのサーバの応答速度が遅いので、Googleの速度チェックを使ってみた。

PageSpeed Insights

するとキャッシュで注意されたので、追加してみた。

んで、圧縮も前からやりたいなと考えていたのでそいつも一緒に追加。

<VirtualHost *:80>
    # ~ 省略 ~

    # ここから追記
    <IfModule mod_deflate.c>
         SetOutputFilter DEFLATE

         # Mozilla4系などの古いブラウザで無効、しかしMSIEは除外
         BrowserMatch ^Mozilla/4\.0[678] no-gzip
         BrowserMatch ^Mozilla/4 gzip-only-text/html
         BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

         # gifやjpgなど圧縮済みのコンテンツは再圧縮しない
         SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
         SetEnvIfNoCase Request_URI _\.utxt$ no-gzip

         # htmlやcssなどは圧縮
         AddOutputFilterByType DEFLATE text/plain
         AddOutputFilterByType DEFLATE text/html
         AddOutputFilterByType DEFLATE text/xml
         AddOutputFilterByType DEFLATE text/css
         AddOutputFilterByType DEFLATE application/xhtml+xml
         AddOutputFilterByType DEFLATE application/xml
         AddOutputFilterByType DEFLATE application/rss+xml
         AddOutputFilterByType DEFLATE application/atom_xml
         AddOutputFilterByType DEFLATE application/x-javascript
         AddOutputFilterByType DEFLATE application/x-httpd-php
    </IfModule>

    <ifModule mod_expires.c>
         ExpiresActive On
         ExpiresByType image/png "access plus 1 months"
         ExpiresByType image/jpeg "access plus 1 months"
         ExpiresByType image/gif "access plus 1 months"
         ExpiresByType text/css "access plus 1 months"
    </ifModule>
</VirtualHost>

cpuが急に回り始めたのでそこだけが心配かな。

【PlayFramework】Evolutionを無効にする

PlayFrameworkに標準でくっついているマイグレーションのEvolution

大変便利なんですけども、たまにウザい。

せっかくいれたダミデータを全部削除しちゃうし。。。スキーマのバージョン管理は嬉しいがデータのバージョン管理もしてほしいな。無理ゲーかな。。。?

またサーバで起動できなくなる場合があるので、本番は無効にした。そのときやったことをメモ。

するほどでもないけど、、、

  • ~/myproject/conf/application.conf
# Evolutions
# ~~~~~
# You can disable evolutions if needed
# 48行目ちかくのコメントを外す
evolutionplugin=disabled

これでおk。(立ち上がらない原因はわからんけど)

【Java】Enumをintへ変換する

いまいちEnumの使い方に慣れていませんが、とあるEnumを返すメソッドを作ったんだけど、「intがいい」ってなったのでintへ変換する必要がでてきました。

キャストじゃうまくいかなかったので、これで対応

return MyEnum.Something.ordinal();

ordinal()ってのがあるのね。初めて知りました。

Enum (Java 2 Platform SE 5.0)

列挙定数の序数 (列挙宣言での位置。初期定数はゼロの序数に割り当てられる) を返します。このメソッドは、ほとんどのプログラマにとって役に立ちません。このメソッドは、EnumSet と EnumMap などの洗練された enum ベースのデータ構造で使用するために設計されています。

(つд⊂)ゴシゴシ

;°ω°)?

このメソッドは、ほとんどのプログラマにとって役に立ちません。

なん・・・だと・・・!?(そもそもEnumで管理するためにつかってんのに、なんで数字に戻すやねんってことだろうね)