サーバー

no image

Amazon CloudFront CDN を使用して WordPress を使ってみる

CDN をどれ使おうかと色々試してみる中で勉強がてらAmazon CloudFrontのCDNとWordpressを組み合わせて使ってみることにした。   CDNの種類 [table "19" not found /]     CloudFront CDN Amazon AWSのCDN、従量課金制で別ドメイン型である。 リクエスト数だけで見ると料金は安いがページの容量が大きかったりすると一気に料金が跳ね上がる。 画像の容量を抑え、CSSなどはインライン化とかしてリクエスト数を減らせば料金も抑えられると思う。 HTTPSで運用しているサイトは、HTTPSで配信する必要性がある。     CloudFrontの設定 証明書のアップロード 初めてCloudFrontを使ったわけですが証明書のアップロードが面倒くさいです。 Web上からできないのでコマンドラインから証明書をアップデートする必要性があります。 参考 http://qiita.com/n0bisuke/items/a2a7d5efdc1311dc479a なおCDN用に証明書を用意できないので今回はデフォルトの証明書を使います。   CloudFrontの設定 イメージ図的にはこんな感じであってるのだと思う。draw.io 便利〜 HTTPSでサーバーを動かしてるときには 同じくHTTPSでCDNから転送しないと主要ブラウザではエラーを吐いてレイアウトが崩れて表示されてしまいます。   General Default CloudFront Certificate (*.cloudfront.net) にチェックをつけます。 独自ドメインでCDN配信するにはまた工程が増えるのでこのまま使うことをオススメします。   Origins Originの設定です。 今回はHTTPSでしか配信を行わないので Origin Protocol Policy は HTTPS Only にします。   Behaviors 特に記述することもなく。   ログイン画面、管理画面でキャッシュさせないように上記のような設定をします。 Path Patternに関して私の環境では /wordpress を付けてます。     Behavioursの設定は上記のようになると思います。   WordPressの設定 WordPressアドレス(URL) : https://<CloudFrontから割り当てられたアドレス>/wordpress サイトアドレス : https://luispc.com とします。   これで画像を開いてみるとCloudFrontアドレスになっていると思います。

Nginx から h2o へ移行して WordPress を動かしてみた。

そういえば DigitalOcean から Azure へ移行しました。 体感速度も上がったと思います。なんといっても vCPU 1コアでしたから前は…。 今回は新たに構築するっていうことで今まで Nginx を使ってきましたが h2o を使ってみました。 h20 – github h2o は DeNA を筆頭に多くの日本人で開発されてる HTTP Server です。 HTTP/2 に強いっぽい。何と言っても HTTP Server なのに逆にリクエストが送れたりする。   h2o のインストール 書くことはありません。こちらを参考にインストールしました。   php-fpm のインストール 好きに入れてください。   h2o の設定 [crayon-5b55a3eac5441283705767/] 直感的で分かりやすと思います。   php-fpm との連携は [crayon-5b55a3eac5463141171741/] これだけ。シンプルだ。   WordPress のパーマリンクは [crayon-5b55a3eac5468569183932/] こんな感じ。 ただ、ログイン時はキャッシュさせないとかパスを見てアクセスコントロールするには mruby とかいうのを使うらしい。 Ruby 分からねえよぉ… ちなみに mruby は ON でビルドしたけどこの設定あってるのか分からねえ。 しかも mruby でキャッシュの設定とかしてなくても勝手に静的コンテンツがキャッシュされてる…。 アクセスコントロールは mruby を使うと柔軟に設定できるわけですが、ちょっとハードルが高いように思う…。   でもまぁ管理画面でヘッダーを見てみるとWordpress側でキャッシュしないようにはなってるっぽいのでここらへんはもう気にしなくてもいいのかな。 ということで設定がよく分からないまま Nginx と比較してみます。   h2o + php-fpm [crayon-5b55a3eac546c253594074/] 27.64req/sec   Nginx(fastcgi_cache) + php-fpm [crayon-5b55a3eac5470921394760/] 8485.62req/sec えぇ…。Nginx の方が 314倍速い!? https ではなく http です。 画像が多く1アクセスで180reqのWordPressです。 なんでこんなに差が大きすぎるんだ…。なんでや…。 とりあえずこのブログは h2o で動かして色々実験します。

no image

脆弱性スキャナ「vuls」を cron で定期的にスキャンする

バイト先で動いているサーバーが多いため脆弱性に関しては大きく問題にならないと気づかなかったりします。 そんな中で便利なツールを見つけた。   @kotakabe さんという日本人が作ったものなので日本語もサポートされています。 日本語の脆弱性情報をJVNから取得し、スキャンを行った結果を Slack に通知することも可能!     環境 ・CentOS 7.2.1511 ・go1.6.2   Golang のインストール 現時点(2016/05/17)での最新は 1.6.2 でした。 最新版は公式サイトで確認してください。 [crayon-5b55a3eac5c97431888379/]   Go 用のワークスペースの作成 [crayon-5b55a3eac5cac424575198/]   Go 実行パスの設定 /root/.bashrc に下記を追記 [crayon-5b55a3eac5cb0222951617/]   設定の反映 [crayon-5b55a3eac5cb3499719126/]   動作確認 [crayon-5b55a3eac5cb6095792256/] 問題なく表示できれば Golang のインストールは終了です。     go-cve-dictionary のインストール 脆弱性情報をダウンロードして、サーバーモードで起動することで 簡単に参照ができるといったもの。 [crayon-5b55a3eac5cba429215801/]   JVNから日本語の脆弱性情報を取得 1時間以上かかります。 カレントディレクトリに cve.sqlite3 ができていることを確認。 [crayon-5b55a3eac5cbd052248228/]   サーバーモードで起動する [crayon-5b55a3eac5cc0363018201/] ここで # ls とか適当なコマンドを打てば入力待ちに戻れます。     vuls のインストール [crayon-5b55a3eac5cc4577284927/]   設定ファイルの作成 cve.sqlite3 と同じディレクトリに作成しておきましょう。 [crayon-5b55a3eac5cc8959793336/] スキャンした結果を Slack へ通知してみます。 その他詳しい通知の仕方は Github を見て下さい。   前準備 [crayon-5b55a3eac5ccc737129380/] 前もってリモート先に yum-plugin-security と yum-plugin-changelog がインストールされます。   実行 [crayon-5b55a3eac5cd1576884460/] と実行すれば結果が表示されると思います。 その他のオプションについては # vuls scan -h で見れます。 [crayon-5b55a3eac5cd5304515206/] こんなエラーが表示された場合は # go-cve-dictionary server がきちんと動いているか確認しませう。 buri ちゃんはどっかの企業のBOT名からパクりました。 バイト先で多分活躍してるであろう buriちゃん です。 Web のように脆弱性が見つからなかった場合は上記のように。 脆弱性が見つかるとスコアが高い順に表示されます。     定期的に実行をする 本題はここからです。 もちろん cron を使用して行いますがどうも # go-cve-dictionary server のプロセスが定期的に死んでしまい、スキャン前に実行するようにしないといけません。(何か知っている人がいれば教えて下さい) [crayon-5b55a3eac5cd9346658627/] 毎日午前3時に定義ファイルを取得し、午前8時55分にサーバーを起動し、午前9時にスキャンをするようにしてます。…

NTTから貸し出されるルーターはルーター機能を無効にして使ったほうが良い場合もある

引っ越してから ベストエフォート100MbpsとなりNTTからの貸出ルーターが RV-S340SE となりました。 LANポートは全て 100BASE-T というゴミ。100Mbpsがベストエフォートなのでまあいいっちゃ良いんだけど今更って感じ…。   引っ越しした直後はデスクトップのレイテンシを低くするためにこんな感じのネットワーク環境だった。 しかし何故かゲームをするとよくラグが凄くてまともにプレイができません! ということでRV-S340SEのルーター機能を使わずに構築してみます。     RV-S340SE のルーター機能をスルーする Canon IXY 430F (4.3mm, f/2.7, 1/25 sec, ISO800) ルーターの背面に蓋があると思います。 そこを開いて接続されているLANケーブルを抜いて、新たにLANケーブルを挿してルーターに挿せばRV-S340SEのルーター機能は完全にスルーされます。     で結局こういうことになった。 RV-S340SEからの線は一本しかないためL2スイッチのVLANで二本出しにしてL3のWAN側に2本飛ばす。 L3のLANからL2のVLANで一本ずつ〜て感じ(日本語が下手すぎて伝えられない)     Canon IXY 430F (4.3mm, f/2.7, 1/30 sec, ISO800) 画像で見るとこんな感じです。 一番上:RV-S340SE 二段目:AR570S(L3) 三段目:GS916M(L2)     Canon IXY 430F (4.3mm, f/2.7, 1/30 sec, ISO800) 下のCatalystは使ってません!送料だけで誰か買ってください。 2950だかそこら辺です。

Intel PRO/1000 PT Server Adapter が1,000円で手に入った

サーバーと、デスクトップのISPを別々にしてる関係上ローカルネットワークも分離してて デスクトップからでもサーバーへアクセスできるようにとNICを1枚と、USB→LANを挿してたがたまに不安定になることがあったからNICを探してた。 最初から Intel のものを買おうと思ってていつものようにヤフオクを見ていたらタイトルが「Intel PRO/1000 MT Desktop Adapter」と記載されてるものの画像を見てみると Intel PRO/1000 PT Server Adapter が写ってた。 価格は980円で即決。Amazonでも最安5,800円と超手頃。 意を決して落札してみた。   SONY DSC-RX100 (10.4mm, f/3.5, 1/30 sec, ISO800)やったぜ! 偽物特有の雑なハンダ付けでもないし、Intelのロゴも綺麗なものなので純正品だと思います。 不安定なこともなくなり、ありがとう出品者と感謝を忘れずこの記事を終わりたいと思います。 そういえば画像を4:3にしてみた。どっちがいいんだろうか。

ZabbixでLinuxのソフトウェアRAIDを監視する【mdadm】

ソフトウェアRAIDにこの前を手を出してZabbixでどうにかできないかと思ってたらこんな記事を見かけた。 Zabbixエージェントで LinuxのソフトウェアRAIDを監視する egrepですごい正規表現をしてるけどイマイチ何やってるか分からないしもっといい方法がありそうだと思った。 mdadmでRAIDを作成すると、RAIDの状態が /proc/mdstat に保存される。 ディスクが2枚で、RAID1だとすると正常であれば [crayon-5b55a3eac6147601419597/] どっちかがぶっ壊れたりすると [crayon-5b55a3eac6154105894731/] UU → _U だったり U_ になったりする。 ここでトリガーが起こせる。   [crayon-5b55a3eac6159737968682/] “grep -o”を使うとマッチした文字数分の行が返ってくる。それをwcで行数を数えれば正規表現を使わずに監視できる。 トリガーの条件式としては2じゃないときに発生させればいいので [crayon-5b55a3eac615e152132910/] こうすれば多分発生する。 あとはZabbix agent側のconfに [crayon-5b55a3eac6161847104286/] これを追加すれば監視ができるようになると思う。

Zabbix 3.0rc1 を使ってAPIを試してみたゾ!

Zabbix 3.0rc1 がちょっと前にリリースされた。 個人でもバイト先でも使ってるのでちょっとかじっとこうと思った。 新機能 です! といっても色々と2.4からの変更は大きいです。 Webインターフェイスの自動アップデートなんかもあったりします。 APIはもちろん、予測機能とかいった意味分からないのもあります。 軽く使ってみた。     Zabbix のダウンロードページ見たら色んなのがあった。 今回はProxmoxに入れるのでqcowを選んだ。   これがデフォルトのBlueテーマ UIがだいぶ良い意味で変わってます。 項目とかが変わったわけではないので2.4からでも困ることはなさそう。   もう1つはBlackテーマ 色の使い方がとてもしゅき♡   軽くAPIも触ってみた [crayon-5b55a3eac63a0140147606/] [crayon-5b55a3eac63b6615544212/] リクエスト先が “http://hogepi/zabbix/api_jsonrpc.php” これでPOSTするとauthkeyが返ってくるのでこれを使って色々するらしい。   [crayon-5b55a3eac63ba235322501/] [crayon-5b55a3eac63be960256353/] 監視対象のホスト名とIPが返ってくる。 APIを使えば何か便利なことができるんだろうか…。何も思いつかない…。 とここまで書いててあれなんですけど、APIって Zabbix 2.x からできたんだな…。 恥ずかしい…。新機能だと思ってた…。

【GMO VPS】最上位プランのベンチマーク

GMO VPS で12GBメモリを使うことがあったので物試しにベンチマークとってみた。 CPUは仮想7コア、ディスクは800GBで月額10,480円~   ネットワーク速度 [crayon-5b55a3eac6634028185337/] 用途によるけどWebサーバー目的だったら割りときついかもしれない…。     ストレージ [crayon-5b55a3eac6649036920593/] どんどん計測すると読み込み速度が速くなってく…。限界値がココらへん。 正しい結果なのかは知らない。     UnixBench [crayon-5b55a3eac664f929717142/] System Benchmarks Index Score: 2989.3   Webサーバーとして目安となるのが”Shell Scripts (8 concurrent)”らしい 「Unixbench score」とかで検索すると色々サイトが出てくるので参考にして欲しいです。 SSHで使っていて引っかかることもなく、ネットワークもそこそこ速いのでストレスはたまらず。