linux

nginx で F5 アタックに耐えるための設定

IPアドレスによって、1秒間に1リクエストに制限する設定。 超えた場合は、503を返します。burst の設定がある場合は、rate を超えても、burst回数までは許容し、rate のペースでレスポンスを返します。 limit_req_zone $binary_remote_addr zone=one:10m rat…

AWS micro を使うときにやっておく設定

micro インスタンスは、その他のタイプとは違い、 バースト、低速モードというものがあり、 低速モードがあるのでsmallにしないと使い物にならないという人がいるが、それは嘘で、 CPUを制限し、低速モードにさせなければsmallよりも高速に処理を行うことも…

ファイル容量が増えない

df -h これで使用ディスク100%になっているが、 実際にファイルを見ても見つからない場合、 du -h -d 1 プロセスがファイルを開いているが、ファイルは削除されている状態の可能性がある。 プロセスが使用中のファイルを調べ、deleted になっていると、その…

プログラムから動的に mp3 file を返すとき、safari で再生されない

携帯電話などではお馴染みだが、Rangeヘッダーがついている場合は、 206 のステータスで部分的に返す必要がある。safari でだけ再生されなかったが、 返しているデータバイト数が1バイト足りないためだった。 def main # 何かの方法で読み込む bin = load se…

nginx Cybertrust 証明書更新方法

忘れるのでメモ hoge.key (申請時に作成した、秘密鍵) と hoge.cer (サーティフィケーションファイル) を用意する 中間証明書をダウンロード https://www.cybertrust.ne.jp/ssl/support/download_ca.html A. 携帯電話接続がある場合 [クロスルート(4階層)]…

VMWare の ディスクサイズを拡張する

Ubuntu12.04で作業した。 vmdk のサイズを増やす VMWare の設定からHDDのサイズを拡張する フォーマットされているサイズを変更する gparted-liveのisoをダウンロードし、イメージディスクをドライブに設定して起動。 GUIで領域を広げる LV の拡張 sudo lvex…

unicorn サブディレクトリで起動する

設定追加 ./config.ru # This file is used by Rack-based servers to start the application. require ::File.expand_path('../config/environment', __FILE__) map ENV['RAILS_RELATIVE_URL_ROOT'] do run MyAppName::Application end 公開用のディレクト…

node.js で 文字エンコード変換

npm install iconv node-iconv は、内部に libiconv のソースファイルを持ち、 インストール時にビルドし使用している。libiconv のバージョンは、libiconv-1.14 だった。libiconv はもともと EUCJP-WIN に対応していない。 パッチを当てて、ビルドし直す必…

Nginx 1.3.13をインストール

socket.io をリバースプロキシさせたかったので、Nginx 1.3.13をインストールしてみた。 $ wget http://nginx.org/download/nginx-1.3.13.tar.gz $ tar xf nginx-1.3.13.tar.gz $ aptitude install libpcre3-dev zlib1g-dev libssl-dev libxslt1-dev libgd2-…

アプリケーションで認証後にS3のコンテンツを返す

Rails の controller 側 class DownloadController < ApplicationController def action # 認証処理 ... resource_id = 2 resource = Resource.find resource_id response.header['X-Accel-Redirect'] = '/reproxy' response.header['X-Reproxy-URL'] = reso…

In-App Purchase

iOSアプリでアイテムを購入したときに、Appleのサーバーで購入チェックを行う。 apple が用意している、pdfを元に素直に実装すると、以下のようになる。 class AppStore STATUS_OK = 0 /** * @param[in] reveipt base64エンコードされた、レシートデータ * @…

Apple PUSH 通知 エラー

/var/www/html/dashboard/vendor/bundle/ruby/1.9.1/gems/railties-3.2.11/lib/rails/commands/runner.rb:53:in `eval': SSL_connect returned=1 errno=0 state=SSLv3 read server session ticket A: sslv3 alert certificate expired (OpenSSL::SSL::SSLErr…

Redis install error

yum install make yum install gcc-c++ wget http://redis.googlecode.com/files/redis-2.6.9.tar.gz tar -xf redis-2.6.9.tar.gz cd redis-2.6.9 make #error "Newer version of jemalloc required"このようにでてmake できない場合は、 make distclean make…

chef-solo 実行時エラー

DEBUG: Re-raising exception: LoadError - template[/etc/nginx/nginx.conf] (nginx::default line 39) had an error: LoadError: cannot load such file -- moneta/basic_file moneta-0.7.0 を使用していることが原因だった。 gem install moneta -v '~> 0…

start-stop-daemon をcentosで使用する

cd /usr/local/src/ wget http://debian.linux-m32r.org/dists/lenny/main/source/dpkg_1.14.25.tar.gz tar -xf dpkg_1.14.25.tar.gz cd dpkg-1.14.25 ./configure cd /usr/local/src/dpkg-1.14.25/libcompat make cd /usr/local/src/dpkg-1.14.25/utils mak…

red5 起動時のエラー

[main] ERROR o.a.jasper.EmbeddedServletOptions - The scratchDir you specified: /usr/share/red5/work/red5Engine/ 0.0.0.0/live is unusable. 今まで起動していたが、上記のようなエラーで起動しても正しく動かないときの対処法このディレクトリを削除…

Ubuntu をTime Machine のバックアップ先にする

Ubuntu 10.04.3 LTS OS X 10.8.2AFPというプロトコルに対応する必要が有るため、SMBではバックアップに使用できない。 Netatalk をインストール 依存ライブラリをインストール aptitude update aptitude install libssl-dev libgcrypt11-dev libpam0g-dev li…

ruby で html アンエスケープ

install $ vim Gemfile 追加 gem "htmlentities" $ bundle install 使い方 puts HTMLEntities.new.decode "&#9834;"

ネットワーク速度を計測

install $ aptitude install iperf サーバー側起動 $ ポートを開ける $ ufw allow 5001 起動 $ iperf -s クライアント実行 $ iperf -c <host></host>

ruby on rails 管理ページ生成

Active Admin を使う場合。 install の順番を間違えると、エラーが出る gem に追加 $ vim Gemfile gem 'activeadmin' $ bundle install インストール $ rails g active_admin:install モデル作成 $ rake db:migrate RAILS_ENV=development --trace 管理でき…

rails + unicorn + nginx

nginx の設定 以下は自分で作成する必要のあるファイル(ubuntuの場合この位置) $ vim /etc/nginx/sites-available/hoge upstream application-unicorn { # Unicornのソケットを指定: server unix:/tmp/unicorn_tagrid.sock fail_timeout=0; } server { ・・…

rails をインストール

rvm ruby マネージャ https://rvm.io/rvm/install/ (参考サイト) バージョンマネージャを使ってインストールする。 $ curl -L get.rvm.io | bash -s stable $ source /etc/profile.d/rvm.sh $ echo source /etc/profile.d/rvm.sh >> ~/.bashrc 必要なライブ…

ubuntu ユーザーを追加

ユーザーを追加 adduser <username> sshログイン時、証明書の必須を無くす vim /etc/ssh/sshd_config #PasswordAuthentication no sudo が利用出来るようにする visudo <username> ALL=(ALL) ALL sudo パスワードを不要にする場合 <username> ALL=(ALL) NOPASSWD: ALL /etc/init.d/ssh relo</username></username></username>…

node.js をインストール

http://nodejs.org/パッケージマネージャーも公開されているため、 とても簡単に最新バージョンがインストール出来る。 centos $ wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm $ yum localinstall --nogpgcheck nodejs-stable…

Redis を install

install aptitude install redis-server 設定 vim /etc/redis/redis.conf 許可するなら追加 bind 127.0.0.1 bind 192.168.0.10 この方法でinstall したredisでは、publish、subscribe がうまくいかなかった。 ソースからインストールする。 wget http://redi…

node.js で twitter streaming api を利用する

今日現在、streaming API を利用しようと思っていくつか試してみたが、どれもこれもエラーでまともに動かない。node は v0.8.2node-twitter twitter-nodeこちらを使えば良い。 npm install twitter npm install ntwitter

自動起動を編集

自動起動を簡単に変更する install aptitude install rcconf rcconf

paco で make install したプログラムを管理する

make install などの、ファイル生成されたログを保存し、パッケージ管理する事が出来るようになる install aptitude install paco 使い方 現在のディレクトリを管理名としてインストール ./configure make paco -D make install 管理名を指定してインストー…

iptables を ufw で行う

iptablesはサーバーに対するアクセス制限を行うソフトだが、 ubuntuの場合は、ラッパーを用いる。 起動 以後自動起動する ufw enable デフォルトで無効に設定 ufw default DENY ルール追加 $ ufw allow proto tcp from 192.168.1.0/24 to any port 22 $ ufw …

MeCab

install sudo apt-get install mecab sudo apt-get install mecab-ipadic 辞書文字コード変更 /usr/lib/mecab/mecab-dict-index -d /usr/share/mecab/dic/ipadic -o /var/lib/mecab/dic/ipadic -f euc-jp -t utf-8 -p /usr/lib/mecab/mecab-dict-index -d /u…