投稿

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

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

イメージ
ロードバランサーになっているNginxにキャッシュさせてバックエンドにあるサーバーに問い合わせないように設定したときの覚書。 環境: CentOS 6.6, nginx 1.6.2 サーバー構成はこんな感じ。   参考にしたサイト NGINX Content Caching | NGINX Nginx + WordPress proxy cache篇 | サーバーワークス エンジニアブログ   目次 キャッシュ機能を有効に 静的サイトはまるっとキャッシュ 動的サイトは一部分キャッシュ キャッシュを削除   1.キャッシュ機能を有効に nginx.confを編集して、 proxy_cache_path を追記する。 # cd /etc/nginx/ # vi nginx.conf http {     # 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日間 最大サイズ:50M   2.静的サイト用にまるっとキャッシュ 静的サイトは全てに対して1日キャッシュする設定にする。 デフォルトでPOSTはキャッシュしない。 proxy_cache_methods を設定すればPOSTもキャッシュすることが可能になる。 # vi conf.d/www.conf upstream 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

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 Blog Postfix DKIM 認証 設定メモ(CentOS6.5+OpenDKIM) | あぱーブログ 目次 OPENDKIMのインストール OPENDKIMの設定 公開鍵と秘密鍵を作成 DNSに公開鍵情報を登録する postfixの設定 メール送信して確認 1.OPENDKIMのインストール YUMでさくっと完了。epelからインストールされた。 # yum install opendkim 2.OPENDKIMの設定 設定ファイルを編集 # vi /etc/opendkim.conf Mode    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で登録

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

イメージ
サイトの問い合わせ画面からメール送信しようとすると下記エラーが表示されたので調べたときの覚書。ちなみにメール自体は届く。 環境: CentOS 6.6, postfix 2.6.6 # tail -f /var/log/maillog Jan 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

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に置き換えられる) 他のネームサーバーも

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

イメージ
PHP 5.4をサポートしているAPC(Alternative PHP Cache)はベータ版だし、最近は更新されていないようなので、既にインストール済みのRedisを使ってキャッシュすることにした。 環境: CentOS 6.6, Redis Server 2.8.19, WordPress 4.1 Redisをインストールしてない場合は前の記事を参考に。 SE奮闘記: RedisをInstallしてNode.js + RedisでSession管理 PHPからRedisに接続するためのドライバーをインストールする。 # yum install php-pecl-redis php-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 flushall Command reference – Redis   < 2015/02/12 Modified > プロジェクトごとに「WP_CACHE_KEY_SALT」をwp-confi

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.GA Windowsから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 install customkeysにSSHの鍵が出力される。 生成された公開鍵(ssh_host_rsa_key)をsustomsshdの「CUSTOM_ID_RSA_PUBKEY」へ代入している部分に貼り付ける。 SSHDデーモン起動。 $ ./scripts/customsshd TeraTermから接続してみる。 ポート番号:50111 ユーザー名:(Macのユーザー名) パスフレーズ:(なし) 秘密鍵:customkeys/ssh_host_rsa_key Titanium CLIでビルドしてみる。 $ ti build -p iphone -T simulator --sim-64bit --tall 無事シミュレーターが起動。 Macを再起動してもこのSSHDデーモンも起動してくれる