NGINX url reescribe en digitalocean

Tengo un problema con la reescritura url de example.com a www.example.com en el servidor web nginx. Estoy usando el nuevo hosting digitalocean.com y todavía estoy luchando con esto ...

Estaré contento con cada opinión.

Ahí está mi código:

server {
  server_name example.com;
  return 301 http://www.example.com$request_uri;
}

server {
  server_name www.example.com;

  root /usr/share/nginx/www;
  index index.php index.html index.htm;

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /usr/share/nginx/www;
  }

  location/{
    try_files $uri $uri/ /index.html;
  }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;        
  }
}

Tengo un error cuando trato de reiniciar el servidor nginx:

Restarting nginx: nginx: [emerg] could not build the server_names_hash, you should 
increase server_names_hash_bucket_size: 32
nginx: configuration file /etc/nginx/nginx.conf test failed
0
sry ya editado ¡Gracias!
agregado el autor Makromat, fuente
Sry hubo error tipográfico ... Esto es lo mismo que en mi servidor nginx con el mismo aviso de error.
agregado el autor Makromat, fuente
Perdón, ¿a qué te refieres con "nombre real del servidor"?
agregado el autor Makromat, fuente
agregado el autor Makromat, fuente
no explicaste lo que intentas lograr
agregado el autor Mohammad AbuShady, fuente
El primer bloque de servidores está duplicado, ¿así es como realmente lo tienes?
agregado el autor Mohammad AbuShady, fuente
Creo que el problema no está aquí, ¿su nombre de servidor real es largo?
agregado el autor Mohammad AbuShady, fuente

2 Respuestas

El nombre del servidor es probablemente demasiado largo para los valores predeterminados.

Modifique el archivo /etc/nginx/nginx.conf agregando lo siguiente debajo de http:

increase server_names_hash_bucket_size: 64

Guarde este valor y pruebe usando -t

nginx -t

Además, observe las configuraciones predeterminadas guardadas en la carpeta de sitios disponibles que pueden causar problemas.

0
agregado

Pruebe lo siguiente:

server {
  server_name example.com;
  return 301 http://www.example.com$request_uri;
}

server {
  server_name www.example.com;

  root /usr/share/nginx/www;
  index index.php index.html index.htm;

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /usr/share/nginx/www;
  }

  location/{
    try_files $uri $uri/ /index.html;
  }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;        
  }
}
0
agregado
Hola, Mohammad, ya he editado el código ... Tengo un error durante el reinicio del servidor nginx. Sabes por qué ?
agregado el autor Makromat, fuente
Esta es una buena respuesta, pero yo diría que debería ser 301 not 302
agregado el autor Mohammad AbuShady, fuente