2014-08-12 11:00:54 +00:00
|
|
|
## $HOSTNAME
|
2014-07-06 12:16:50 +00:00
|
|
|
|
2014-05-14 12:15:11 +00:00
|
|
|
# Redirect all HTTP to HTTPS.
|
2013-09-01 14:24:49 +00:00
|
|
|
server {
|
|
|
|
listen 80;
|
2014-06-20 01:16:38 +00:00
|
|
|
listen [::]:80;
|
2013-09-01 14:24:49 +00:00
|
|
|
|
2014-06-20 01:16:38 +00:00
|
|
|
server_name $HOSTNAME;
|
2014-05-14 12:15:11 +00:00
|
|
|
root /tmp/invalid-path-nothing-here;
|
2014-06-20 01:16:38 +00:00
|
|
|
rewrite ^/(.*)$ https://$HOSTNAME/$1 permanent;
|
2013-09-07 20:53:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# The secure HTTPS server.
|
|
|
|
server {
|
|
|
|
listen 443 ssl;
|
2013-09-01 14:24:49 +00:00
|
|
|
|
2014-06-20 01:16:38 +00:00
|
|
|
server_name $HOSTNAME;
|
2013-09-07 20:53:25 +00:00
|
|
|
|
2014-06-20 01:16:38 +00:00
|
|
|
ssl_certificate $SSL_CERTIFICATE;
|
|
|
|
ssl_certificate_key $SSL_KEY;
|
2014-04-18 00:27:52 +00:00
|
|
|
include /etc/nginx/nginx-ssl.conf;
|
2013-09-14 14:11:47 +00:00
|
|
|
|
2014-08-12 11:36:40 +00:00
|
|
|
# Expose this directory as static files.
|
|
|
|
root $ROOT;
|
2013-09-07 20:53:25 +00:00
|
|
|
index index.html index.htm;
|
|
|
|
|
2014-08-12 11:36:40 +00:00
|
|
|
# Roundcube Webmail configuration.
|
|
|
|
rewrite ^/mail$ /mail/ redirect;
|
|
|
|
rewrite ^/mail/$ /mail/index.php;
|
|
|
|
location /mail/ {
|
|
|
|
index index.php;
|
|
|
|
alias /usr/local/lib/roundcubemail/;
|
2014-08-11 14:30:39 +00:00
|
|
|
}
|
2014-08-13 05:30:32 +00:00
|
|
|
|
2014-08-12 11:36:40 +00:00
|
|
|
location ~ /mail/config/.* {
|
|
|
|
# A ~-style location is needed to give this precedence over the next block.
|
|
|
|
return 403;
|
2014-08-11 18:17:38 +00:00
|
|
|
}
|
2014-08-13 05:30:32 +00:00
|
|
|
|
2014-08-12 11:36:40 +00:00
|
|
|
location ~ /mail/.*\.php {
|
|
|
|
# note: ~ has precendence over a regular location block
|
|
|
|
include fastcgi_params;
|
|
|
|
fastcgi_split_path_info ^/mail(/.*)()$;
|
|
|
|
fastcgi_index index.php;
|
|
|
|
fastcgi_param SCRIPT_FILENAME /usr/local/lib/roundcubemail/$fastcgi_script_name;
|
2014-08-12 11:00:54 +00:00
|
|
|
fastcgi_pass php-fpm;
|
2014-08-12 11:36:40 +00:00
|
|
|
client_max_body_size 20M;
|
2014-07-08 00:37:53 +00:00
|
|
|
}
|
2014-08-11 14:24:29 +00:00
|
|
|
|
2014-08-12 11:36:40 +00:00
|
|
|
# ownCloud configuration.
|
|
|
|
rewrite ^/cloud$ /cloud/ redirect;
|
|
|
|
rewrite ^/cloud/$ /cloud/index.php;
|
|
|
|
rewrite ^(/cloud/core/doc/[^\/]+/)$ $1/index.html;
|
|
|
|
location /cloud/ {
|
|
|
|
alias /usr/local/lib/owncloud/;
|
|
|
|
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
|
|
|
|
deny all;
|
|
|
|
}
|
|
|
|
}
|
2014-08-13 06:10:53 +00:00
|
|
|
|
2014-08-15 23:17:16 +00:00
|
|
|
location ~ ^(/cloud)(/[^/]+\.php)(/.*)?$ {
|
2014-08-12 11:36:40 +00:00
|
|
|
# note: ~ has precendence over a regular location block
|
|
|
|
include fastcgi_params;
|
|
|
|
fastcgi_param SCRIPT_FILENAME /usr/local/lib/owncloud/$2;
|
|
|
|
fastcgi_param SCRIPT_NAME $1$2;
|
|
|
|
fastcgi_param PATH_INFO $3;
|
2014-08-12 13:11:33 +00:00
|
|
|
fastcgi_param MOD_X_ACCEL_REDIRECT_ENABLED on;
|
2014-08-13 05:30:32 +00:00
|
|
|
fastcgi_read_timeout 630;
|
2014-08-11 21:41:38 +00:00
|
|
|
fastcgi_pass php-fpm;
|
2014-08-12 11:36:40 +00:00
|
|
|
error_page 403 /cloud/core/templates/403.php;
|
|
|
|
error_page 404 /cloud/core/templates/404.php;
|
|
|
|
client_max_body_size 1G;
|
|
|
|
fastcgi_buffers 64 4K;
|
2013-09-07 20:53:25 +00:00
|
|
|
}
|
2014-08-15 23:10:05 +00:00
|
|
|
location ^~ /cloud/data {
|
|
|
|
# In order to support MOD_X_ACCEL_REDIRECT_ENABLED, we need to expose
|
|
|
|
# the data directory but only allow 'internal' redirects within nginx
|
|
|
|
# so that this is not exposed to the world.
|
|
|
|
internal;
|
|
|
|
alias $STORAGE_ROOT/owncloud;
|
|
|
|
}
|
|
|
|
|
2014-08-13 06:10:53 +00:00
|
|
|
|
2014-08-13 00:30:09 +00:00
|
|
|
location ~ ^/((caldav|carddav|webdav).*)$ {
|
|
|
|
# Z-Push doesn't like getting a redirect, and a plain rewrite didn't work either.
|
|
|
|
# Properly proxying like this seems to work fine.
|
|
|
|
proxy_pass https://$HOSTNAME/cloud/remote.php/$1;
|
|
|
|
}
|
2014-08-13 05:30:32 +00:00
|
|
|
|
2014-08-12 11:36:40 +00:00
|
|
|
rewrite ^/.well-known/host-meta /cloud/public.php?service=host-meta last;
|
|
|
|
rewrite ^/.well-known/host-meta.json /cloud/public.php?service=host-meta-json last;
|
|
|
|
rewrite ^/.well-known/carddav /cloud/remote.php/carddav/ redirect;
|
|
|
|
rewrite ^/.well-known/caldav /cloud/remote.php/caldav/ redirect;
|
2014-08-11 14:24:29 +00:00
|
|
|
|
2014-06-20 01:54:59 +00:00
|
|
|
# Webfinger configuration.
|
|
|
|
location = /.well-known/webfinger {
|
|
|
|
include fastcgi_params;
|
2014-06-21 16:35:00 +00:00
|
|
|
fastcgi_param SCRIPT_FILENAME /usr/local/bin/mailinabox-webfinger.php;
|
2014-08-12 11:00:54 +00:00
|
|
|
fastcgi_pass php-fpm;
|
2014-06-20 01:54:59 +00:00
|
|
|
}
|
2014-07-09 12:31:32 +00:00
|
|
|
|
2014-07-12 00:02:32 +00:00
|
|
|
# Microsoft Exchange autodiscover.xml for email
|
|
|
|
location /autodiscover/autodiscover.xml {
|
|
|
|
include fastcgi_params;
|
|
|
|
fastcgi_param SCRIPT_FILENAME /usr/local/bin/mailinabox-exchange-autodiscover.php;
|
2014-08-12 11:00:54 +00:00
|
|
|
fastcgi_pass php-fpm;
|
2014-07-12 00:02:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# Z-Push (Microsoft Exchange ActiveSync)
|
|
|
|
location /Microsoft-Server-ActiveSync {
|
2014-08-13 05:30:32 +00:00
|
|
|
include /etc/nginx/fastcgi_params;
|
2014-07-12 00:02:32 +00:00
|
|
|
fastcgi_param SCRIPT_FILENAME /usr/local/lib/z-push/index.php;
|
2014-08-13 05:30:32 +00:00
|
|
|
fastcgi_read_timeout 630;
|
2014-08-12 11:00:54 +00:00
|
|
|
fastcgi_pass php-fpm;
|
2014-07-12 00:02:32 +00:00
|
|
|
}
|
|
|
|
|
2014-07-09 12:31:32 +00:00
|
|
|
# ADDITIONAL DIRECTIVES HERE
|
2013-09-01 14:24:49 +00:00
|
|
|
}
|
|
|
|
|