Config for Nginx and Sogo

This is the configfile for Nginx, put it in /etc/nginx/sites-enabled

Nginx will rewrite all requests on port 80 to https.

Replace HOSTNAME by your FQDN.

Using expires max is encouraged because the browser has to download static content only once. But using this also requires you to delete your browser cache after upgrading sogo!

server
{
   listen      80 default;
   server_name HOSTNAME;
   ## redirect http to https ##
   rewrite     ^ `https://$server_name$request_uri?` permanent; 
}
server
{
   listen 443;
   server_name HOSTNAME; 
   root /usr/lib/GNUstep/SOGo/WebServerResources/; 
   ssl on;
   ssl_certificate /etc/nginx/sslcerts/mycertificate.crt;
   ssl_certificate_key /etc/nginx/sslcerts/mykey.key;
   ## requirement to create new calendars in Thunderbird ##
   proxy_http_version 1.1;
   
   # Message size limit
   client_max_body_size 50m;
   client_body_buffer_size 128k;
   
   location = /
   {
      rewrite ^ `https://$server_name/SOGo`; 
      allow all; 
   }

   # For iOS 7
   location = /principals/
   {
      rewrite ^ `https://$server_name/SOGo/dav`; 
      allow all; 
   }
   location ^~/SOGo
   {
      proxy_pass `http://127.0.0.1:20000`; 
      proxy_redirect `http://127.0.0.1:20000` default; 
      # forward user's IP address 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header Host $host; 
      proxy_set_header x-webobjects-server-protocol HTTP/1.0; 
      proxy_set_header x-webobjects-remote-host 127.0.0.1; 
      proxy_set_header x-webobjects-server-name $server_name; 
      proxy_set_header x-webobjects-server-url $scheme://$host; 
      proxy_set_header x-webobjects-server-port $server_port; 
      proxy_connect_timeout 90;
      proxy_send_timeout 90;
      proxy_read_timeout 90;
      proxy_buffer_size 4k;
      proxy_buffers 4 32k;
      proxy_busy_buffers_size 64k;
      proxy_temp_file_write_size 64k;
      break;
   }
   location /SOGo.woa/WebServerResources/
   {
      alias /usr/lib/GNUstep/SOGo/WebServerResources/;
      allow all;
      expires max;
   }

   location /SOGo/WebServerResources/
   {
      alias /usr/lib/GNUstep/SOGo/WebServerResources/; 
      allow all;
      expires max;
   }

   location (^/SOGo/so/ControlPanel/Products/([^/]*)/Resources/(.*)$)
   {
      alias /usr/lib/GNUstep/SOGo/$1.SOGo/Resources/$2;
      expires max;
   }

   location (^/SOGo/so/ControlPanel/Products/[^/]*UI/Resources/.*\.(jpg|png|gif|css|js)$)
   {
      alias /usr/lib/GNUstep/SOGo/$1.SOGo/Resources/$2;
      expires max;
   }
   location ^~ /Microsoft-Server-ActiveSync 
   {
      access_log /var/log/nginx/activesync.log;
      error_log  /var/log/nginx/activesync-error.log;
      resolver your.dns-server.ip.address;
      
      proxy_connect_timeout 75;
      proxy_send_timeout 3600;
      proxy_read_timeout 3600;
      proxy_buffers 64 256k;
      
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      
      proxy_pass http://127.0.0.1:20000/SOGo/Microsoft-Server-ActiveSync;
      proxy_redirect http://127.0.0.1:20000/SOGo/Microsoft-Server-ActiveSync /;
   }
}

nginxSettings (last edited 2016-11-17 09:42:40 by ChristianMack)