zuazo/owncloud-cookbook

View on GitHub
templates/default/nginx_vhost.erb

Summary

Maintainability
Test Coverage
# 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' %>;

}