在本篇不包含 Owncloud 的安裝細項,僅將原本的 Apache 改為 Nginx 來 run
安裝可參考: CentOS6.5 建立自己的私有雲 OwnCloud 6.0 前言與安裝
實作的環境是採用 CentOS 6 + ownCloud 6,請記得不要將 ownCloud 升級至 8 ,因為 ownCloud 8 必須採用 php 5.4 later,而 CentOS 6 最高只有 php 5.3 !!
本篇範例中會實作 Nginx 以下
- SSL
- return 轉址 http to https
step1. 設定 php-fpm
首先必須確定一些必要參數
listen = /var/run/php-fpm/php-fpm.sock
step2. 加入 nginx ownCloud.conf
$ vim /etc/nginx/conf.d/ownCloud.conf
server {
listen 80;
server_name cloud.twbbs.org;
# enforce https
return 301 https://cloud.twbbs.org$request_uri;
}
server {
listen 443;
server_name shazicloud.twbbs.org;
root /home/owncloud;
index index.php;
ssl on;
ssl_certificate /etc/pki/tls/certs/simple.crt;
ssl_certificate_key /etc/pki/tls/private/simple.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;
gzip off;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ /index.php;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
include fastcgi_params;
}
# Optional: set long EXPIRES header on static assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
}
- 在 listen 80 的那段,將回應標頭 301 return 給 https 處理
- deny all 所有敏感的檔案及目錄 .htaccess / data / config / .xml / README
- rewrite 支援 caldav / cardav / webdav,當然,如果你用不到也可以不需要加入
- 用 expires 來提供靜態檔案到期的時間為 30d,並且不寫入 access_log
step3. 重新啟動 Nginx , php-fpm 服務
$ service php-fpm restart
$ service nginx restart
查看 ownCloud 並且登入測試功能 OK!
從 WordPress 跟 ownCloud 的範例,可以滿足大多一般性網站的需求,當然 fastcgi 有更多更強的 option 可以參考官網來支援使用,下次有使用到在記錄下來囉!!
參考資料:
ownCloud Nginx Configuration
Module ngx_http_fastcgi_module
Orignal From: 用 Nginx 取代 Apache 吧 - ownCloud 實務操作
沒有留言:
張貼留言