X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=etc%2Fnginx%2Fsite.d%2Fdavical%2Fsite.conf;fp=etc%2Fnginx%2Fsite.d%2Fdavical%2Fsite.conf;h=914608546049f6569c4f1bc84505b2c19269a2cc;hb=e2ae547ef85e29f3f9c9dfe31feffdac2653df06;hp=0000000000000000000000000000000000000000;hpb=d210d4efb0016a3ea2425af9f601bfe908161499;p=lhc%2Fateliers.git diff --git a/etc/nginx/site.d/davical/site.conf b/etc/nginx/site.d/davical/site.conf new file mode 100644 index 0000000..9146085 --- /dev/null +++ b/etc/nginx/site.d/davical/site.conf @@ -0,0 +1,72 @@ +server_name + davical.heureux-cyclage.org + davical.autogeree.net; + +client_body_buffer_size 8k; +client_max_body_size 10m; + +rewrite ^\.well-known(.*)$ /caldav.php/.well-known$1; +rewrite ^principals/users(.*)$ /caldav.php$1; + +location / { + # NOTE: to get DAViCal and nginx working with iCal 6.0 clients. + return 301 /caldav.php$1; + } +location ~* ^.+.(css|gif|html|ico|jpeg|js|jpg|png|txt|xml)$ { + root /usr/share/davical/htdocs/; + access_log off; + expires 30d; + log_not_found off; + } +location ~ /\. { + access_log off; + deny all; + log_not_found off; + } +location ~ \.php(|/.*)$ { + root /usr/share/davical/htdocs/; + keepalive_timeout 0; + include /etc/nginx/conf.d/fastcgi.conf; + if ($request_method = OPTIONS) { + add_header Access-Control-Allow-Credentials "true"; + add_header Access-Control-Allow-Headers "User-Agent,Authorization,Content-type,Depth,If-match,If-None-Match,Lock-Token,Timeout,Destination,Overwrite,X-client,X-Requested-With"; + add_header Access-Control-Allow-Methods "GET,POST,OPTIONS,PROPFIND,REPORT,PUT,MOVE,DELETE,LOCK,UNLOCK"; + add_header Access-Control-Allow-Origin "*"; + add_header Content-Length 0; + add_header Content-Type text/plain; + return 200; + } + set $no_cache "0"; + if ($request_method !~ ^(GET|HEAD)$) { + # NOTE: if non GET/HEAD, don't cache and mark user as uncacheable for 1 second via cookie. + set $no_cache "1"; + } + if ($no_cache = "1") { + # NOTE: drop no cache cookie if need be (for some reason, add_header fails if included in prior if-block). + add_header Set-Cookie "_mcnc=1; Max-Age=2; Path=/"; + add_header X-Microcachable "0"; + } + if ($http_cookie ~* "_mcnc") { + # NOTE: bypass cache if no-cache cookie is set + set $no_cache "1"; + } + fastcgi_cache_bypass $no_cache; + fastcgi_cache_use_stale updating; + fastcgi_cache_valid 200 10s; + fastcgi_cache_valid 404 10m; + fastcgi_ignore_headers Cache-Control Expires Set-Cookie; + fastcgi_index index.php; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_no_cache $no_cache; + fastcgi_param REDIRECT_STATUS 200; + # NOTE: PHP only, required if PHP was built with --enable-force-cgi-redirect + fastcgi_pass_header Cookie; + fastcgi_pass_header Set-Cookie; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + + fastcgi_pass unix:/run/php5/fpm/davical; + } + +# vim: ft=sh