投稿

1月, 2015の投稿を表示しています

ロードバランサーのNginxにキャッシュさせる設定

イメージ
ロードバランサーになっているNginxにキャッシュさせてバックエンドにあるサーバーに問い合わせないように設定したときの覚書。環境: CentOS 6.6, nginx 1.6.2サーバー構成はこんな感じ。参考にしたサイトNGINX Content Caching | NGINXNginx + WordPress proxy cache篇 | サーバーワークス エンジニアブログ目次キャッシュ機能を有効に 静的サイトはまるっとキャッシュ 動的サイトは一部分キャッシュ キャッシュを削除1.キャッシュ機能を有効にnginx.confを編集して、proxy_cache_pathを追記する。# cd /etc/nginx/
# vi nginx.confhttp {
    # Proxy Cache
    proxy_cache_path /var/cache/nginx/cache_www levels=1 keys_zone=www:4m inactive=7d max_size=50m;
    proxy_cache_path /var/cache/nginx/cache_web levels=1 keys_zone=web:4m inactive=7d max_size=50m;
}ゾーン名:www, web
保持期間:7日間
最大サイズ:50M2.静的サイト用にまるっとキャッシュ静的サイトは全てに対して1日キャッシュする設定にする。デフォルトでPOSTはキャッシュしない。proxy_cache_methodsを設定すればPOSTもキャッシュすることが可能になる。# vi conf.d/www.confupstream webs {
    ip_hash;
    server web01.hoge.com;
}
server {
    listen       80;
    server_name  www.hoge.com;
    #
    # Header
    #
    add_header X-Cache $upstream_cache_status;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 …

PostfixにDKIMを設定して送信メールサーバーの信頼度を上げる

イメージ
サーバーから送信されたメールが迷惑メールと判定されないようにDKIM(DomainKeys Identified Mail)をPostfixに設定したときの覚書。環境: CentOS 6.6, postfix 2.6.6, opendkim 2.9.0
参考サイトHow to install and integrate DKIM with OpenDKIM and Postfix on a CentOS 6 VPS | RoseHosting.com Linux VPS Hosting BlogPostfix DKIM 認証 設定メモ(CentOS6.5+OpenDKIM) | あぱーブログ
目次OPENDKIMのインストール OPENDKIMの設定 公開鍵と秘密鍵を作成 DNSに公開鍵情報を登録する postfixの設定 メール送信して確認
1.OPENDKIMのインストールYUMでさくっと完了。epelからインストールされた。
# yum install opendkim
2.OPENDKIMの設定設定ファイルを編集
# vi /etc/opendkim.confMode    sv
Umask   022
Selector        hoge
#KeyFile        /etc/opendkim/keys/default.private
KeyTable        /etc/opendkim/KeyTable
SigningTable    refile:/etc/opendkim/SigningTable
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts   refile:/etc/opendkim/TrustedHosts

3.公開鍵と秘密鍵を作成鍵を保存するディレクトリを作成
# cd /etc/opendkim
# mkdir keys/hoge.com鍵生成
# opendkim-genkey --bits=2048 -D keys/hoge.com/ -d hoge.com -s www01
-D:出力ディレクトリ
-d:ドメイン名
-s:DNSで登録する時に使うセレクタ名ファイルのオーナーを変更
# chown opendkim. keys/hoge.com/www01…

メール送信時にエラー。複数サーバー構成でのSPF設定を見直す

イメージ
サイトの問い合わせ画面からメール送信しようとすると下記エラーが表示されたので調べたときの覚書。ちなみにメール自体は届く。環境: CentOS 6.6, postfix 2.6.6# tail -f /var/log/maillogJan 27 19:51:28 web01 postfix/pickup[4502]: EB2FEA0216: uid=498 from=<nginx>
Jan 27 19:51:28 web01 postfix/cleanup[5109]: EB2FEA0216: message-id=<512ad4f4dd41bc3ad80aa18f9d3cc874@www.hoge.com>
Jan 27 19:51:28 web01 postfix/qmgr[1266]: EB2FEA0216: from=<nginx@hoge.com>, size=930, nrcpt=1 (queue active)
Jan 27 19:51:31 web01 postfix/smtp[5111]: EB2FEA0216: host ASPMX.L.GOOGLE.com[2404:6800:4008:c01::1b] said: 421-4.7.0 [2401:2500:102:2b04:111:222:333:444      15] Our system has detected an 421-4.7.0 unusual rate of unsolicited mail originating from your IP address. To 421-4.7.0 protect our users from spam, mail sent from your IP address has been 421-4.7.0 temporarily rate limited. Please visit 421-4.7.0 http://www.google.com/mail/help/bulk_mail.html to review our Bulk 421 4.7.0 Email Senders Guidelines. mz9si1019871pdb.205 - gsmtp (in reply to end of DATA com…

TCPDFにGoogle Noto Sans CJK Fontを追加したい(失敗)

イメージ
TCPDFで帳票を出力するときにNoto Sans CJKを試したときの覚書。環境: PHP 5.4.36, TCPDF 6.2.4オープンソースの美しい Noto フォントファミリーに日本語、中国語、韓国語が加わりました。 - Google Developer Japan Blogちなみに日本語を表示するだけなら「cid0jp」「kozgopromedium」「kozminproregular」を使えばできる。Noto Sans CJKは公式サイトからダウンロード。90Mくらいある。Google Noto Fonts解凍した中から「NotoSansCJKjp-Regular.otf」だけインストールしてみる。「NotoSansCJKjp-Regular.otf」をTCPDFのtoolsディレクトリに置いておく。# cd /path/to/tcpdf/tools/
# ./tcpdf_addfont.php -i NotoSansCJKjp-Regular.otf。。。失敗。。。その後いろいろ試したけど失敗した。試したこと。fontforgeをインストールしてotfからttfへのスクリプトを実行
参考:Convert .otf to .ttf Font on Ubuntu – Maemst Blogオンラインフォント変換サイトを使った WOFFコンバータを使ってみたttfに変換出来ても実際日本語を表示すると豆腐になる。そんなに頑張ることでもないので諦めた。下記サイトも参考になる気がする。Asciidoctor :: Discussion - How to generate fonts< Related Posts >【PHP】TCPDF 4.5.xxx+FPDIで既存PDFの読み込みと編集TCPDFに日本語フォントIPAを追加する

Value DomainからGoogle Domainsにドメイン移管する

イメージ
すでにInvitation Codeが送られていたのに気付いて試したときの覚書。記事書いてたら一般公開されたというニュースが。。。バリュードメインから他社へ移管する手順は公式ヘルプを参考に。ドメインを他社へ移管したいのですが、手続き方法を教えてください | VALUE-DOMAIN ユーザーガイドまずはバリュードメインで作業。管理画面から「WHOIS」を選択して、「管理担当者情報」のメールアドレスが自分のメールアドレスになっているか確認。
「登録者情報を↓にコピー」を使うと簡単。 画面下にある「認証鍵情報」をメモっておく次にGoogle Domainsで作業「Transfer a domain name」から移管したいドメインを検索 ドメインが移管できる状態かチェックされるので確認する。メールアドレスはバリュードメイン側を変更してから数分で反映された。 「Get authorization code」はバリュードメインの「WHOIS」画面の下のほうにある「認証鍵(Authorization Info)」を入力。 今のDNS設定をインポートできるので確認する。
Google Apps関連は問題なくインポートされてた。
Aレコードの設定が反映されてなかったのでここで追加。 連絡情報を入力する。
バリュードメインで入力してたのをコピー
「Make my info private」で非公開になる。 Google Walletを経由で支払い
どうやら日本の住所のクレジットカードだと「サポートされてないお支払い方法」と出て選択出来ない。
Google Walletの管理画面で請求先住所を適当なアメリカの住所にしたら選択できた。(MasterCard) 確認メールが届くので「Confirm Transfer」する 10分ぐらいしたらバリュードメインから確認のメールが来るので承認する Googleから移行が完了したとメールが来る機能一覧「www.hoge.com」か「hoge.com」へのアクセスを別ドメイン(IPも可)に転送可能 info@hoge.comなどのメールを別メールアドレスに転送可能 WHOIS情報は非公開に出来る(whoisproxy.comに置き換えられる) 他のネームサーバーも指定可能 Glue Recordも指定可能 Google Appsとも…

WordPressのCache機能をAPCからRedisに変更

イメージ
PHP 5.4をサポートしているAPC(Alternative PHP Cache)はベータ版だし、最近は更新されていないようなので、既にインストール済みのRedisを使ってキャッシュすることにした。環境: CentOS 6.6, Redis Server 2.8.19, WordPress 4.1Redisをインストールしてない場合は前の記事を参考に。SE奮闘記: RedisをInstallしてNode.js + RedisでSession管理PHPからRedisに接続するためのドライバーをインストールする。
# yum install php-pecl-redisphp-fpmを再起動
# /etc/rc.d/init.d/php-fpm restart次にWordPressのキャッシュ機能を設定する。それ用のプラグインが公開されている。Redis Object Cache | WordPress Plugins内部的にはGitHubで公開されているのを使っているので、こちらからobject-cache.phpをダウンロードして/wp-content/に配置。ericmann/Redis-Object-Cache | GitHub配置するだけで動作する。接続するデータベースを変更する場合は「WP_REDIS_BACKEND_DB」をwp-config.phpで定義する。他にもソースコードを見ると設定できる項目がわかる。どんな値が登録されているかはRedis Desktop Managerを使うと簡単に分かって便利。クライアントから接続するために下記設定を忘れずに。サーバー側の/etc/redis.confのbindを編集
→ 開発環境ならコメントアウトでいい ファイヤーウォールの設定。ポート番号はデフォルトで6379こんな画面。< 2015/01/15 Modified>
キャッシュをクリアする場合は下記コマンド
# redis-cli flushallCommand reference – Redis< 2015/02/12 Modified >
プロジェクトごとに「WP_CACHE_KEY_SALT」をwp-config.phpに設定して、キャッシュが競合しないようにした。define('WP_CACHE_KEY_SALT',…

XCode6にあげたらTitanium CLI(SSH経由)からSimulatorが起動しない

イメージ
開発環境を最新にしてからSSHでビルドコマンドを打つと下記エラーでシミュレーターが起動してくれない。[INFO]  Launching iOS Simulator
[ERROR] Project failed to build after 1s 455msちなみに直接Macのターミナルから実行すると問題なく起動する。環境: OS X 10.10.1, XCode 6.1.1, Titanium SDK 3.4.1.GAWindowsからMacにSSHで接続している私としてはこれだけで開発効率がかなり落ちる。下記サイトでXCodeの問題ということと解決するための方法が載ってた。xctool fails to launch simulator and install application when running tests against XCode 6 Beta 5 · Issue #404 · facebook/xctool方法としては別のSSHデーモンを起動してそちらから接続すればいいらしい。起動スクリプトをダウンロード。~/scripts/customsshdに置く。スクリプトを読んで必要なディレクトリを作成
$ cd
$ mkdir customkeys鍵を生成するスクリプトもあるようなので実行。
$ chmod 755 scripts/customsshd
$ ./scripts/customsshd installcustomkeysにSSHの鍵が出力される。生成された公開鍵(ssh_host_rsa_key)をsustomsshdの「CUSTOM_ID_RSA_PUBKEY」へ代入している部分に貼り付ける。SSHDデーモン起動。
$ ./scripts/customsshdTeraTermから接続してみる。
ポート番号:50111
ユーザー名:(Macのユーザー名)
パスフレーズ:(なし)
秘密鍵:customkeys/ssh_host_rsa_keyTitanium CLIでビルドしてみる。
$ ti build -p iphone -T simulator --sim-64bit --tall無事シミュレーターが起動。Macを再起動してもこのSSHDデーモンも起動してくれる。そのうちXCodeのバージョンアップで直っていると思う。< Related Posts…