画像やリンクが無効になっている可能性もあるのでご了承下さい。
Apache から Nginx への移行も表面上は上手く出来たけど、細かい動作は未だ不完全な状態。
具体的な物がこの OwnCloud。Dropbox の様なクラウドストレージを実現するプログラムになる。とりあえずは Web ブラウザからのアクセスだけでもファイルのやりとりやスケジュール、ドキュメント管理なんかも出来てしまう。しかし真骨頂はそこにあるのではなくて、Windows や Android に用意されたクライアントで同期を取ることにより、異なるデバイスであっても相互にやりとり出来る所。
今現在は Windows 用クライアントから OwnCloud サーバーへの接続で問題が発生中なステータス。Apache に切り替えると問題無く動作することから、Nginx の動作や設定に問題があると分かっている。分かってはいても素直に解決とならない所が自身の知識と経験不足であるorz
具体的なエラーは、Windows 用クライアントから接続しようとすると 401 エラーがでており、裏では php-fpm との接続が切れているかなーという感じのメッセージが残っている。
access_log
192.168.1.x - - [20/Dec/2015:23:00:18 +0900] "PROPFIND /remote.php/webdav/ HTTP/1.1" 401 0 "-" "Mozilla/5.0 (Windows) mirall/2.1.0" "-"
error_log
2015/12/20 23:00:18 [error] 13461#13461: *17041 readv() failed (104: Connection reset by peer) while reading upstream, client: 192.168.1.x, server: cloud.buccimoni.com, request: "PROPFIND /remote.php/webdav/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "cloud.buccimoni.com"
このエラーを出しているマシンとは別の Windows 機でも同様にエラーが出ていたけど、気がついたら勝手に繋がっていた状態で意味が分からない。他、Android のクライアントソフトは何も問題無い状態。では何が問題かと試行錯誤しまくりなのである。
Nginx 上で OwnCloud を動かす際の設定は OwnCloud オフィシャルに乗っているからそのまま使っているのだがはてさて。
暫くはこれを正常に接続できるように問題解決に取りかかって行こうと思う。
2015/12/21 00:34 解決した……
ここ二日、こればかり考えて居たけど、海外のフォーラムに書いてあった解決案を試したら出来た。
解決するにあたって行った設定変更は次の 2 点のみ。
まずこれ。php-fpm の pool で OwnCloud が使用している物。UNIX Domain Socket を用いた通信を行っていたが、これを 127.0.0.1:9000 で Listen するようにした。
[nginx]
;listen = /var/run/php-fpm/php-fpm.sock
listen = 127.0.0.1:9000
あわせて Nginx の OwnCloud 設定ファイルの upstream 部分を変更。
upstream php-handler {
# server unix:/var/run/php-fpm/php-fpm.sock;
server 127.0.0.1:9000;
これで無事解決。Socket 通信の何がダメなのかは追って調査しておこう。
コメント