2011-09-26 25 views

Respuesta

7

Usted podría tratar de usar el módulo split clients:

http { 

    # Split clients (approximately) equally based on 
    # client ip address 
    split_clients $remote_addr $cdn_host { 
    33% cdn1; 
    33% cdn2; 
    - cdn3; 
    } 

    server { 
    server_name example.com; 

    # Use the variable defined by the split_clients block to determine 
    # the rewritten hostname for requests beginning with /images/ 
    location /images/ { 
     rewrite^http://$cdn_host.example.com$request_uri? permanent; 
    } 
    } 
} 
+3

Esta es la solución correcta a la pregunta, pero no es la mejor manera de hacer lo que espero que realmente desee. Específicamente, está tratando de descargar el trabajo de sus servidores web. Si su aplicación está enviando solicitudes de CDN a su servidor web en primer lugar, luego de ser redirigido, realmente no está descargando todo a CDN. Idealmente, desearía que su aplicación en sí misma ofreciera enlaces a activos en el CDN directamente. Si usa Rails, puede usar la función incorporada de "hosts de activos". Otros marcos tienen características similares o puedes DIY :) – genexp

0

Esto es por supuesto posible. Nginx viene con balanceo de carga:

upstream mysite { 
    server www1.mysite.com; 
    server www2.mysite.com; 
} 

Esto define 2 servidores para el equilibrio de carga. De forma predeterminada, las solicitudes se distribuirán por igual en todos los servidores definidos. Sin embargo, puede agregar pesos a las entradas del servidor.

Dentro de su servidor {Configuración} ahora se puede añadir lo siguiente para pasar las solicitudes entrantes al equilibrador de carga (por ejemplo, para equilibrar la carga de todas las solicitudes de directorio de imágenes):

location /images/ { 
     proxy_pass http://mysite; 
} 

echar un vistazo a la documentation para una descripción más detallada.

+0

He tratado de esta solución, pero isnt aguas arriba se encuentra en mi servidor –

+5

Esta no es la solución correcta. El objetivo de la CDN es descargar el trabajo del servidor web. En realidad, esto representaría todas las solicitudes al CDN en lugar de redirigirlas, lo que generalmente hace que el CDN sea inútil. – genexp

Cuestiones relacionadas