templates/default/nginx_vhost.erb
# Generated by Chef
server {
server_name <%=
server_names = []
server_names.push @server_name if @server_name.kind_of? String
server_names += @server_aliases if @server_aliases.kind_of? Array
server_names.join ' '
%>;
<% if @ssl -%>
listen 443 <%= Chef::VersionConstraint.new('< 0.8.21').include?(node['nginx']['version'][/\d+\.\d+\.\d+/]) ? 'default' : '' %> ssl;
<%= render 'nginx.erb', cookbook: 'ssl_certificate' %>
<% else -%>
listen <%= @port ? @port : '80' %>;
<% end -%>
access_log <%= node['nginx']['log_dir'] %>/<%= @name %>-access.log combined;
error_log <%= node['nginx']['log_dir'] %>/<%= @name %>-error.log;
# Path to the root of your installation
root <%= @docroot %>;
<% if @max_upload_size -%>
client_max_body_size <%= @max_upload_size %>;
<% end -%>
fastcgi_buffers 64 4K;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 360;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 = /core/templates/403.php;
error_page 404 = /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|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)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
<% if @ssl -%>
fastcgi_param HTTPS on;
<% end -%>
fastcgi_pass <%= @fastcgi_pass %>;
}
# 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;
}
sendfile <%= @sendfile.eql?(true) ? 'on' : 'off' %>;
}