Category Archives: 鯖関連のお話

雑記:QNAP TS-870のCPUを換えた

CPUを変更できるNASって珍しい気がする。
某セール品で保証もないので気軽に分解&換装した。
※2カ所ほどVOIDシールがあるので普通の方法じゃ保証は残せないっすな

やり方はこちらのサイトから

Blog – Duppeditten

Socket 1156 のIvy Bridgeで65WぐらいまでのCPUならOKらしい
今回載せ替えたのは余っていた(CPUの玉突き移動で余らせた)i5の3470S

分解はかなり難易度が高いので自信がある人以外にはおすすめできないです。
特に紹介したblogのしたの方に記載されている、横に飛び出たCPUヒートシンク直下のネジが
狭すぎて普通のドライバーじゃ外せないのでかなり無理矢理外すことになってヒヤヒヤだった
※たぶん専用のドライバー無いと無理な気がする

これ使えばもっとスムーズにいけたかな?
合わせてないので試す人は自己責任で。

ちなみに換えた理由は仮想マシンをNASで動かしたいので
メモリとCPUちょっと盛りたかっただけ^q^

blog:大分放置してたので再整備

最近ちょこちょこ自鯖周りを移行したりなんやりでいじってるので
このblogも大きく変わらないにしてもいろいろと動いてなかった部分を直したり消したりしますた(´ω`)

blogをほぼ動かしてなかったのはツイッターでほぼ事足りてたから
SNSは便利ね、blogキラーだと思う

ちょうど今の時期暇が少しあるんで、その合間に入れていければなぁといったところ

猫鯖はCounter-Strike: Sourceのゲームサーバとして生まれ
そのメンテナンスやらなんやらでWebページも作って
連動させたりやってたけど、個人がたてれるゲームサーバはほぼ今使われていないので
家鯖で動いてる部分をどんどんクラウドに持って行っております。
このblogも家鯖運用しててはまったことややろうと思ったことを書くつもりでやってきたけど
今後はお買い物したものの報告みたいになると思うw

メールサーバもオンプレからクラウドに移動させたので大分ましになった。
古い機構のシステムは厳しいかったー、ほぼ使い物にならないレベルでSPAMがなだれ込んでて
どうしたらいいか検討もつかなかった。

新しくメールシステムを作り直す過程で、今風のおすすめ設定いれて再構築したところ
満足がいくものになったという流れ

あと一つだけ家鯖に残ってる機能があるんで、これをどうやって消すか考え中
使ってなかったらそのままデストロイなんだけど^q^
仮想基盤に専用OS立てて維持する必要ありそう・・・NASにやらせるか

ちなみにWordPressのこの基盤、全部ConoHaで出てます。
VPSとクラウドの隙間を埋めてくれるナイスなサービスだと思う
おかげであんまり苦労せずにサーバ群をセットアップできた

※なお月額料金はそれなりの模様

Blog:サーバー引っ越しました

Blogは放置してたけど中身はちょこちょこ変えていたのれす(´ω`)
さくらのVPS旧プランでこの鯖ずっと動かしていたけど、だいぶ古くなってきたのと
継ぎ足し続けたUbuntuがいろいろあやしいので綺麗さっぱり入れ直しするついでに
ConoHaに移動しますた。

↓今はこんな構成に
https://www.conoha.jp/documents/example/04/

ApacheBenchを走らせてみたところ、大体同じ設定で2倍ぐらいConoHaが早かった
まあさくらは旧プランでHDDだったし、ConoHaはSSDだし
CPUは新しいでスペック的に大分差はあるのだけどね。

時間があればBlogも手を入れていきたいなぁとおもっとります。

Ubuntu:VMware上のUbuntuのディスク容量をオンラインでそのまま拡張する手順

いつも忘れるので備忘録
VMwareの操作でディスクの拡張を行ってからの話
100Gから160Gにアップ

パーティションをリサイズ

/home/nekolove% sudo parted /dev/sda
GNU Parted 2.3
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) print
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 172GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos

番号  開始    終了   サイズ  タイプ    ファイルシステム  フラグ
 1    1049kB  256MB  255MB   primary   ext2              boot
 2    257MB   107GB  107GB   extended
 5    257MB   107GB  107GB   logical                     lvm

(parted) resizepart 5
終了?  [107GB]? 172GB                                                     
(parted) print                                                            
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 172GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos

番号  開始    終了   サイズ  タイプ    ファイルシステム  フラグ
 1    1049kB  256MB  255MB   primary   ext2              boot
 2    257MB   172GB  172GB   extended
 5    257MB   172GB  172GB   logical                     lvm

(parted) quit                                                             
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。  

/home/nekolove% sudo reboot

容量とかもろもろをチェック

/home/nekolove% sudo lvdisplay 
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/root
  LV Name                root
  VG Name                ubuntu-vg
  LV UUID                jag9O5-MfJW-NNAo-hUkr-rEcl-UOjs-oNlAV2
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-07-18 02:03:11 +0900
  LV Status              available
  # open                 1
  LV Size                97.41 GiB
  Current LE             24937
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
   
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/swap_1
  LV Name                swap_1
  VG Name                ubuntu-vg
  LV UUID                pKTMYk-FSKy-3vbA-nGVW-K6Au-QF2N-tS5mx7
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-07-18 02:03:11 +0900
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

割当先を確認、dfから引っ張ってきてもよい

/home/nekolove% sudo lvdisplay 
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/root
  LV Name                root
  VG Name                ubuntu-vg
  LV UUID                jag9O5-MfJW-NNAo-hUkr-rEcl-UOjs-oNlAV2
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-07-18 02:03:11 +0900
  LV Status              available
  # open                 1
  LV Size                97.41 GiB
  Current LE             24937
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
   
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/swap_1
  LV Name                swap_1
  VG Name                ubuntu-vg
  LV UUID                pKTMYk-FSKy-3vbA-nGVW-K6Au-QF2N-tS5mx7
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-07-18 02:03:11 +0900
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

空き領域全部

/home/nekolove% sudo lvextend -l +100%FREE /dev/ubuntu-vg/root
 Extending logical volume root to 157.76 GiB
 Logical volume root successfully resized
 /home/nekolove%

ファイルシステムのリサイズ

/home/nekolove% sudo resize2fs /dev/ubuntu-vg/root
 resize2fs 1.42.9 (4-Feb-2014)
 Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
 old_desc_blocks = 7, new_desc_blocks = 10
 The filesystem on /dev/ubuntu-vg/root is now 41355264 blocks long.

結果、こうなりました

/home/nekolove% df
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-root  156G   68G   82G  46% /
none                         4.0K     0  4.0K   0% /sys/fs/cgroup
udev                         2.0G  4.0K  2.0G   1% /dev
tmpfs                        395M  1.4M  394M   1% /run
none                         5.0M     0  5.0M   0% /run/lock
none                         2.0G   80K  2.0G   1% /run/shm
none                         100M   36K  100M   1% /run/user
/dev/sda1                    236M   68M  156M  31% /boot

blog:ngx_pagespeedはやっぱダメだった

仕組み的に早くなってバンザーイだと思ったngx_pagespeedですが
結局NGINXのCache使った方が死ぬほど早かったという罠

ngx_pagespeed on;

# ab -n 1000 -c 100 http://www.nekolove.jp/wp/
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
 Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.nekolove.jp (be patient)
 Completed 100 requests
 Completed 200 requests
 Completed 300 requests
 Completed 400 requests
 Completed 500 requests
 Completed 600 requests
 Completed 700 requests
 Completed 800 requests
 Completed 900 requests
 Completed 1000 requests
 Finished 1000 requests
Server Software: nginx
 Server Hostname: www.nekolove.jp
 Server Port: 80
Document Path: /wp/
 Document Length: 28383 bytes
Concurrency Level: 100
 Time taken for tests: 18.597 seconds
 Complete requests: 1000
 Failed requests: 2
 (Connect: 0, Receive: 0, Length: 2, Exceptions: 0)
 Total transferred: 28766106 bytes
 HTML transferred: 28383106 bytes
 Requests per second: 53.77 [#/sec] (mean)
 Time per request: 1859.710 [ms] (mean)
 Time per request: 18.597 [ms] (mean, across all concurrent requests)
 Transfer rate: 1510.55 [Kbytes/sec] received
Connection Times (ms)
 min mean[+/-sd] median max
 Connect: 14 28 98.4 17 1603
 Processing: 84 1762 1080.2 1406 4675
 Waiting: 68 1725 1072.0 1376 4646
 Total: 98 1790 1095.5 1428 5885
Percentage of the requests served within a certain time (ms)
 50% 1428
 66% 2482
 75% 2979
 80% 3027
 90% 3181
 95% 3363
 98% 3582
 99% 3617
 100% 5885 (longest request)
 #

ngx_pagespeed off;

# ab -n 1000 -c 100 http://www.nekolove.jp/wp/
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
 Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.nekolove.jp (be patient)
 Completed 100 requests
 Completed 200 requests
 Completed 300 requests
 Completed 400 requests
 Completed 500 requests
 Completed 600 requests
 Completed 700 requests
 Completed 800 requests
 Completed 900 requests
 Completed 1000 requests
 Finished 1000 requests
Server Software: nginx
 Server Hostname: www.nekolove.jp
 Server Port: 80
Document Path: /wp/
 Document Length: 88049 bytes
Concurrency Level: 100
 Time taken for tests: 8.838 seconds
 Complete requests: 1000
 Failed requests: 0
 Total transferred: 88367000 bytes
 HTML transferred: 88049000 bytes
 Requests per second: 113.15 [#/sec] (mean)
 Time per request: 883.754 [ms] (mean)
 Time per request: 8.838 [ms] (mean, across all concurrent requests)
 Transfer rate: 9764.69 [Kbytes/sec] received
Connection Times (ms)
 min mean[+/-sd] median max
 Connect: 16 60 264.5 24 3047
 Processing: 100 716 543.9 559 3994
 Waiting: 15 58 97.9 25 1663
 Total: 117 776 612.7 595 4952
Percentage of the requests served within a certain time (ms)
 50% 595
 66% 817
 75% 994
 80% 1110
 90% 1491
 95% 1932
 98% 2560
 99% 3298
 100% 4952 (longest request)
 #

これアカンやつや・・・っていうか処理能力が全般で倍違うとわ
もし使い続けるなら使用するフィルターを調整しないとダメだわね
NGINXのキャッシュのあるなしは関係なくてngx_pagespeedが動いてると性能が低下する模様
どこかにボトルネックがあるのか、合わないのか・・・

nginx:ngx_pagespeedを追加してビルドする(Ubuntu)

nginxのstableバージョンが1.6になったためリポジトリがアップデートされた
そのためバージョンが低いppaの野良ビルドが上書きされてしまい、
pagespeedが無効になってしまったので面倒ながら自分でビルドすることにした
通常のビルド手順だとパッケージ管理から外れてしまい、メンテナンスが厄介になるので
debianパッケージを作成することに。

まずは準備
ppaからパッケージをダウンロード出来るようにする
追加するppaはnginx公式によるリポジトリ(Ubuntu公式とは別)

sudo aptitude install python-software-properties
sudo add-apt-repository ppa:nginx/stable

ビルドに必要なパッケージを揃える
最新バージョンについての情報は以下より

https://github.com/pagespeed/ngx_pagespeed

sudo aptitude update
sudo aptitude safe-upgrade
sudo aptitude install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

ソースをもってくる、場所はとりあえずホームディレクトリ

mkdir ~/nginxsrc
cd ~/nginxsrc
sudo apt-get source nginx-full

モジュールをソースの中に配置する

cd nginx-1.6.0/debian/modules
wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.7.30.4-beta.zip
unzip v1.7.30.4-beta.zip
cd ngx_pagespeed-1.7.30.4-beta/
wget https://dl.google.com/dl/page-speed/psol/1.7.30.4.tar.gz
tar -xzvf 1.7.30.4.tar.gz

configureにngx_pagespeedのオプションを追加する
common,light,full,extrasなどに分かれているので利用するパッケージの部分に記述する

cd ~/nginxsrc/nginx-1.6.0
vi debian/rules

extrasに追加する場合の例(最後の行が該当):

extras_configure_flags := \
 $(common_configure_flags) \
 --with-http_addition_module \
 --with-http_dav_module \
 --with-http_flv_module \
 --with-http_geoip_module \
 --with-http_gzip_static_module \
 --with-http_image_filter_module \
 --with-http_mp4_module \
 --with-http_perl_module \
 --with-http_random_index_module \
 --with-http_secure_link_module \
 --with-http_spdy_module \
 --with-http_sub_module \
 --with-http_xslt_module \
 --with-mail \
 --with-mail_ssl_module \
 --add-module=$(MODULESDIR)/headers-more-nginx-module \
 --add-module=$(MODULESDIR)/nginx-auth-pam \
 --add-module=$(MODULESDIR)/nginx-cache-purge \
 --add-module=$(MODULESDIR)/nginx-dav-ext-module \
 --add-module=$(MODULESDIR)/nginx-development-kit \
 --add-module=$(MODULESDIR)/nginx-echo \
 --add-module=$(MODULESDIR)/ngx-fancyindex \
 --add-module=$(MODULESDIR)/nginx-http-push \
 --add-module=$(MODULESDIR)/nginx-lua \
 --add-module=$(MODULESDIR)/nginx-upload-progress \
 --add-module=$(MODULESDIR)/nginx-upstream-fair \
 --add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module \
 --add-module=$(MODULESDIR)/ngx_pagespeed-1.7.30.4-beta

おまじないを一言放ってビルドを行う

sudo apt-get build-dep nginx
sudo dpkg-buildpackage -b

エラーなどが無ければ最初に作成したディレクトリ以下にパッケージが作成されているはず

cd ~/nginxsrc/
% ls
nginx-1.6.0 nginx-full_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0.debian.tar.gz
nginx-common_1.6.0-1+trusty0_all.deb nginx-light-dbg_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0.dsc
nginx-doc_1.6.0-1+trusty0_all.deb nginx-light_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0_all.deb
nginx-extras-dbg_1.6.0-1+trusty0_amd64.deb nginx-naxsi-dbg_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0_amd64.changes
nginx-extras_1.6.0-1+trusty0_amd64.deb nginx-naxsi-ui_1.6.0-1+trusty0_all.deb nginx_1.6.0.orig.tar.gz
nginx-full-dbg_1.6.0-1+trusty0_amd64.deb nginx-naxsi_1.6.0-1+trusty0_amd64.deb

インストール

sudo dpkg --install nginx-common_1.6.0-1+trusty0_all.deb nginx-extras_1.6.0-1+trusty0_amd64.deb

確認は-Vオプションで
最後にngx_pagespeedが追加されているはず。公式バージョンには無い。
(逆に言うと差分はそれぐらい)

% nginx -V
nginx version: nginx/1.6.0
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' 
--with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' 
--prefix=/usr/share/nginx 
--conf-path=/etc/nginx/nginx.conf 
--http-log-path=/var/log/nginx/access.log 
--error-log-path=/var/log/nginx/error.log 
--lock-path=/var/lock/nginx.lock 
--pid-path=/run/nginx.pid 
--http-client-body-temp-path=/var/lib/nginx/body 
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi 
--http-proxy-temp-path=/var/lib/nginx/proxy 
--http-scgi-temp-path=/var/lib/nginx/scgi 
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi 
--with-debug 
--with-pcre-jit 
--with-ipv6 
--with-http_ssl_module 
--with-http_stub_status_module 
--with-http_realip_module 
--with-http_auth_request_module 
--with-http_addition_module 
--with-http_dav_module 
--with-http_flv_module 
--with-http_geoip_module 
--with-http_gzip_static_module 
--with-http_image_filter_module 
--with-http_mp4_module 
--with-http_perl_module 
--with-http_random_index_module 
--with-http_secure_link_module 
--with-http_spdy_module 
--with-http_sub_module 
--with-http_xslt_module 
--with-mail 
--with-mail_ssl_module 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/headers-more-nginx-module 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-auth-pam 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-cache-purge 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-dav-ext-module 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-development-kit 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-echo 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/ngx-fancyindex 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-http-push 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-lua 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-upload-progress 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-upstream-fair 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/ngx_http_substitutions_filter_module 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/ngx_pagespeed-1.7.30.4-beta

FreeBSD:UFS2の不整合でKernelPanic

あんまり見たこと無いけど原因考えるとなるほどと思った。
原因はおそらくRAID Arrayが離脱したとき。
その後Arrayは復旧出来た。

mode = 0100744, inum = 12118762, fs = /data
panic: ffs_valloc: dup alloc
cpuid = 1
KDB: stack backtrace:
#0 0xffffffff808e7e70 at kdb_backtrace+0x60
#1 0xffffffff808af955 at panic+0x155
#2 0xffffffff80ac1a0a at ffs_valloc+0x86a
#3 0xffffffff80afecb4 at ufs_makeinode+0x84
#4 0xffffffff80d97dd2 at VOP_CREATE_APV+0x92
#5 0xffffffff80957f49 at vn_open_cred+0x2c9
#6 0xffffffff80951651 at kern_openat+0x261
#7 0xffffffff80c8f027 at amd64_syscall+0x357
#8 0xffffffff80c7571b at Xfast_syscall+0xfb
Uptime: 1m17s
Dumping 381 out of 6119 MB:..5%..13%..21%..34%..42%..51%..63%..72%..84%..93%
Dump complete
Automatic reboot in 15 seconds - press a key on the console to abort
Rebooting...

ファイルシステムで重複したものがあるっぽい?
どうやら不整合があるらしく、該当のファイルにアクセスするとPanicする模様
UFS2なのでfsckで・・・と思ったら実行しても解決せず、何故だ。

# tunefs -p /dev/da1p1
tunefs: POSIX.1e ACLs: (-a)                                enabled
tunefs: NFSv4 ACLs: (-N)                                   disabled
tunefs: MAC multilabel: (-l)                               disabled
tunefs: soft updates: (-n)                                 enabled
tunefs: soft update journaling: (-j)                       enabled
tunefs: gjournal: (-J)                                     disabled
tunefs: trim: (-t)                                         disabled
tunefs: maximum blocks per file in a cylinder group: (-e)  4096
tunefs: average file size: (-f)                            16384
tunefs: average number of files in a directory: (-s)       64
tunefs: minimum percentage of free space: (-m)             5%
tunefs: space to hold for metadata blocks: (-k)            6408
tunefs: optimization preference: (-o)                      time
tunefs: should optimize for space with minfree < 8%
tunefs: volume label: (-L)

# fsck -y /dev/da1p1

** /dev/da1p1

USE JOURNAL? yes

** SU+J Recovering /dev/da1p1
Journal timestamp does not match fs mount time
** Skipping journal, falling through to full fsck

** Last Mounted on /data
** Phase 1 - Check Blocks and Sizes
24275080 DUP I=12118750
UNEXPECTED SOFT UPDATE INCONSISTENCY

~略~

ぐぐってみたらジャーナルとファイルシステムの間に重複したものがあるらしい
一時的にsoft updatesを無効にしてfsck走らせれば解決するそうな

# tunefs -n disable /dev/da1p1
tunefs: soft updates cleared
 
# fsck -y /dev/da1p1          

** /dev/da1p1

USE JOURNAL? yes

** SU+J Recovering /dev/da1p1
Journal timestamp does not match fs mount time
** Skipping journal, falling through to full fsck

** Last Mounted on /data
** Phase 1 - Check Blocks and Sizes
24275080 DUP I=12118750
24275081 DUP I=12118750

~略~

904133 files, 2047901555 used, 789805708 free (1650660 frags, 98519381 blocks, 0.1% fragmentation)

***** FILE SYSTEM MARKED CLEAN *****

***** FILE SYSTEM WAS MODIFIED *****

無効にしたsoft updatesを戻す。

# tunefs -n enable /dev/da1p1
tunefs: soft updates set

念のため再マウントする前にfsckしてエラーが出ないことを確認
full fsckなので結構時間がかかる

マウントしなおして再利用開始
一応問題は解決した模様

新NAS鯖のRAID関係の調子がいまいちなので困る
RAIDカードかバックプレーンもしくはSASのケーブルのどれかに原因があるんじゃないかとにらんでるのだが・・・

FreeBSD:Proftpdで日本語ファイル名が使えない問題を解決

最近新しいNAS兼なんでもBOXとしてFreeBSDベースで構築しているのだけど
Proftpdで日本語のファイル名(ディレクトリ含む)が使えなくなっていて??となったのでメモ

コンフィグファイルは前使ってたのをそのまま持ってきただけだったのでなんで動作が違うのか。
旧NASから該当ファイルをrsyncで移動したので、オプションに問題でもあったかと思ったけど
そもそもftpクライアントからディレクトリを作成しても?????という文字列になってしまう。

結局ProftpdのBuildオプションにあるNSL(National Language Support)が問題源だった。
デフォルトでCheckが付いているのでそのままスルーしたのだけど
まさかトラブルの原因になるとは。。。

Portsからmake configでチェックを外してビルドし直したらなんとかなった。
Apache24といいFreeBSD10のパッケージはどーも癖がある。。。

blog:UbuntuのNginxでPagespeedを使う

Pagespeedは比較的昔からあるWebサイトの最適化手法の一つです。Googleさんが提供しています。
本来はWebサイトの設計やコードそのものを見直して転送量を含めたロードタイムを削減したりするのですが
すでに運用中のサイト全体に行うのはちょっと無理があります。
そこで必要な部分をサーバーサイドで自動的に行ってくれるモジュールを導入することで
Webサイトへの変更なしで効果を得ることが出来ます。
メリットは大きいですが、場合によってはデメリットが生じることがあるようなので
導入の判断は慎重にした方がよいかもしれません。
うちは遊びで運用してるので見切り発車で入れてみました^q^

PageSpeed Module – Make the Web Faster — Google Developers
https://developers.google.com/speed/pagespeed/module?hl=ja

Apacheはモジュールの形になるので導入が比較的容易なのですが、
Nginxはソースからビルドし直さないと行けないので結構面倒です。
バージョン管理も大変になるので、UbuntuのPPA(Personal Package Archives for Ubuntu)
を探してみたら良さそうなのを見つけました。

↓ここから
https://launchpad.net/ubuntu/+ppas?name_filter=nginx

↓これを使ってみた。
https://launchpad.net/~sandyd/+archive/nginx-current-pagespeed

いわゆる野良ビルドなので信頼性という点では??ですが、
面倒なことは楽したい方にはお薦めです^q^

add-apt-repositoryを使うのでまだ未導入の場合は

apt-get install python-software-properties

とする

# add-apt-repository ppa:sandyd/nginx-current-pagespeed
 This PPA contains the latest version of Nginx built with the Pagespeed modulet.

Original package backported from Debian and pagespeed support added

IMPORTANT NOTE:
On Trusty, and possibly future releases, add the following to /etc/apt/preferences.d/nginx-current-pagespeed

Package: *
Pin: release o=LP-PPA-sandyd-nginx-current-pagespeed
Pin-Priority: 600

From trusty onwards, Ubuntu will be synced with debian unstable (See ProposedMigration https://wiki.ubuntu.com/ProposedMigration), which will require the fix above to continue using the PPA.
 More info: https://launchpad.net/~sandyd/+archive/nginx-current-pagespeed
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmppit1oi9v/secring.gpg' created
gpg: keyring `/tmp/tmppit1oi9v/pubring.gpg' created
gpg: requesting key F2F46C93 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmppit1oi9v/trustdb.gpg: trustdb created
gpg: key F2F46C93: public key "Launchpad ~dolphinaura" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

2014-04-24現在でtrustyの1.4.7がパッケージにリストされているので
14.04LTSでも問題ありません。

# nginx -V
nginx version: nginx/1.4.7
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_secure_link_module --with-http_spdy_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --add-module=/build/buildd/nginx-1.4.7/debian/modules/headers-more-nginx-module --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-cache-purge --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-dav-ext-module --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-development-kit --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.4.7/debian/modules/ngx-fancyindex --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-http-push --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-lua --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-upload-progress --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.4.7/debian/modules/ngx_pagespeed --add-module=/build/buildd/nginx-1.4.7/debian/modules/ngx_http_substitutions_filter_module

設定はここからもってきた
バーチャルホストごとに設定したい場合は下の方に設定例がありますね

PageSpeed Configuration – PageSpeed Module — Google Developers
https://developers.google.com/speed/pagespeed/module/configuration

pagespeed on;

# Needs to exist and be writable by nginx.
pagespeed FileCachePath /var/cache/ngx_pagespeed_cache;

# Ensure requests for pagespeed optimized resources go to the pagespeed handler
# and no extraneous headers get set.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
  add_header "" "";
}

動作確認

# curl -I http://localhost/wp/
HTTP/1.1 200 OK
Server: nginx/1.4.7
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.5.9-1ubuntu4
X-Pingback: http://www.nekolove.jp/wp/xmlrpc.php
Date: Thu, 24 Apr 2014 01:52:34 GMT
X-Page-Speed: 1.7.30.4-3847
Cache-Control: max-age=0, no-cache

X-Page-Speedが出ていればOK
うちの場合は劇的に変わるものではないっぽいですなー

FreeBSD:FreeBSDのApache2.4でowncloudが動かない?

新しく環境作ってやってみたけど、結局そういう結論になった。
具体的には何かが原因でWebdavのコマンドがブロックされるみたい。
この”何か”がわからないので困っている。
Webdavモジュールはそもそもロードしてないし。
一応公式フォーラムには対応例があったけど、どれも当てはまらなかった。

Apacheに記録されるログ

xxx.xxx.xxx.xxx - - [16/Apr/2014:08:47:56 +0900] "PROPFIND /owncloud/remote.php/webdav/ HTTP/1.1" 405 253

owncloudに記録されるログ

Warning	core	isWebDAVWorking: NO - Reason: Method not allowed (Sabre_DAV_Exception_MethodNotAllowed)	2014-04-15T23:47:56+00:00

Apache2.4なら全部ダメというわけではなく、たとえばUbuntuでリポジトリからインストールしたものに関しては大丈夫みたい。
今のところ問題があるのはFreeBSDのApache2.4で、Portsもパッケージも両方ダメだった。
ちょっと原因がわからないし思い浮かばないので仕方が無くnginxをフロントにおいて、
owncloudはphp-fpm経由で動かすことにした。

owncloudの公式にあるnginxの設定例はサブドメインのサイト全体に対する設定だったので
あるURLの下に配置するには不適だったのでいじくる。
サブドメイン用意するのはいいとしても、SSLのキーをもう一個用意しないといけないのは面倒だから・・・
というわけで大体↓こんな感じに

# owncloud
location ^~ /owncloud {
        root /usr/local/www;
        index index.php;
        try_files $uri $uri/ /index.php?$args;
        location ~ ^/owncloud/(?:\.|data|config|db_structure\.xml|README) {
                deny all;
        }
        
		rewrite ^/owncloud/apps/([^/]+)/(.+\.(css|php))$ /owncloud/index.php?app=$1&getfile=$2 last;
        rewrite ^/owncloud/remote/(.*)$ /owncloud/remote.php/$1 last;
		
        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;
                include fastcgi_params;
                fastcgi_index index.php;
                fastcgi_param PATH_INFO $2;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_pass  127.0.0.1:9000;
        }
        location ~* \.(?:jpg|gif|ico|png|css|js|svg)$ {
                expires max; add_header Cache-Control public;
        }
}

公式のには入ってないのが多々あるしもうちょっと洗練させれそうな気がしなくもないが、ひとまずこれで動いてる模様。