Configuración de Nginx

De Wiki Diaspora*
Saltar a: navegación, buscar

Nginx es un servidor web ligero, que funciona fácilmente como front-end para Diaspora*.

Esta es una configuración básica para la instalación estándar de un pod, necesitarás escalar apropiadamente si tu pod crece. Si estás ejecutando Diaspora en modo de producción, tal vez requieras comentar la línea «daemon off».

Nota: Si estás utilizando un certificado StartSSL, y tienes problemas, revisa https://gist.github.com/1825744.
worker_processes 1;
daemon off;
events {
  worker_connections  1024;
} 

#
# FIXME: Tal vez quieras modificar el valor de la directriz «log_format»
#        aquí abajo, si no estás utilizando Splunk
#
http {

  include       mime.types;
  default_type  application/octet-stream;
  sendfile on;
  keepalive_timeout  65;
  gzip              on;
  gzip_http_version 1.0;
  gzip_comp_level   2;
  gzip_proxied      any;
  gzip_buffers      16 8k;
  gzip_types        text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
  gzip_disable      "MSIE [1-6]\.(?!.*SV1)";

#
# FIXME: Si usas una aplicación de servidor thin, especifica el número correcto de servidores thin
#        abajo, de lo contrario coméntalo y reemplázalo con tu propia solución
#
upstream thin_cluster {
  server          localhost:3000;
} 


#
# FIXME: Especifica el(los) valor(es) correctos para la directriz «server_name», y
#        el nombre de dominio correcto en la directriz «rewrite»
#
server {
  listen       80;
  server_name  example.com  www.example.com;
  rewrite      ^(.*) https://example.com$1<nowiki> permanent;
 }
 
 #
 # FIXME: Especifica los valores correctos para la directriz «server_name», y
 #        «ssl_certificate» + «ssl_certificate_key»
 #
 server {
   listen       443;
   server_name  example.com  www.example.com;
   ## Asegúrate de cambiar la ubicación si clonaste en /usr/local/app
   root         /usr/local/app/diaspora/public; 
 
   ssl on;
   ssl_certificate      /path/to/cert_location;
   ssl_certificate_key  /path/to/key_location;
   # habilita la seguridad ssl, si deseas mitigar BEAST y otros exploits
   #ssl_session_cache       shared:SSL:10m;
   #ssl_session_timeout     5m;
   #ssl_protocols           TLSv1;
   #ssl_ciphers             ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM;
   #ssl_prefer_server_ciphers on;
   #add_header              Strict-Transport-Security max-age=500;
   #ssl_ecdh_curve          secp521r1; 
 
   location /uploads/images {
   expires 1d;
   add_header Cache-Control public;
   }
   location /assets {
   expires 1d;
   add_header Cache-Control public;
   }
 
 #
 # FIXME: Modifica la directriz «rewrite», para que apunte al  bucket y ruta S3 apropiados 
 #        o coméntalo si piensas almacenar las imágenes en el sistema de archivos local
 #
 location / {
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host $http_host;
   proxy_set_header X-Forwarded-Proto https;
   proxy_redirect off;
   client_max_body_size 4M;
   client_body_buffer_size 128K; 
 
   if (-f $request_filename/index.html) {
     rewrite (.*) $1/index.html break;
   }
   if (-f $request_filename.html) {
     rewrite (.*) $1.html break;
   }
   if (!-f $request_filename) {
     proxy_pass <nowiki>http://thin_cluster<nowiki>;
     break;
   }
   # Si cambias a un bucket S3 puedes redireccionar los antiguos enlaces al S3
   #rewrite ^/uploads/images/(.*)$ <nowiki>https://example.com/s3bucket/s3path/$1 permanent<nowiki>;
 }
 
   error_page 500 502 503 504 /50x.html;
   location = /50x.html {
   root html;
   }
 }
 
 }