Servidor de verniz na frente do servidor nginx com vários hosts virtuais

1

Eu tentei procurar uma solução para isso, mas não consigo encontrar nenhuma documentação / dicas sobre minha configuração específica.

Minha configuração:

Backendserver: ngnix: 2 sites diferentes (2 domínios principais) em virtualenv, executando gunicorn / python / django Backendserver hardware (VPS) 2gb ram, 8 CPU

Databaseserver: postgresql - pg_bouncer
Backendserver hardware (VPS) 1gb ram, 8 CPU

Varnishserver: somente executando o verniz | Hardware de Varnishserver (VPS) 1gb ram, 8 CPU

Estou tentando configurar um servidor de verniz para lidar com picos de tráfego raros (20 000 solicitações exclusivas). O pico ocorre quando um programa de TV menciona um dos sites.

O que eu preciso fazer para fazer com que o servidor de verniz armazene em cache ambos os sites / domínios no meu backendserver?

Meu /etc/varnish/default.vcl:

backend django_backend {
    .host = "local.backendserver.com";
    .port = "8080";
}

Meu /usr/local/nginx/site-avaible/domain1.com

upstream gunicorn_domain1 {
    server unix:/home/<USER>/.virtualenvs/<DOMAIN1>/<APP1>/run/gunicorn.sock fail_timeout=0;

}

server {
    listen 80;
    listen 8080;
        server_name domain1.com;
        rewrite ^ http://www.domains.com$request_uri? permanent;
}

server {
    listen 80 default_server;
    listen 8080;

    client_max_body_size 4G;
    server_name  www.domain1.com;

    keepalive_timeout 5;

    # path for static files
    root /home/<USER>/<APP>-media/;

    location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;

      if (!-f $request_filename) {
        proxy_pass http://gunicorn_domain1;
        break;
      }
    }

}

Meu /usr/local/nginx/site-avaible/domain2.com

upstream gunicorn_domain2 {
    server unix:/home/<USER>/.virtualenvs/<DOMAIN2>/<APP2>/run/gunicorn.sock fail_timeout=0;

}

server {
    listen 80;
    listen 8080;
        server_name domain2.com;
        rewrite ^ http://www.domains.com$request_uri? permanent;
}

server {
    listen 80;
    listen 8080;

    client_max_body_size 4G;
    server_name  www.domain2.com;

    keepalive_timeout 5;

    # path for static files
    root /home/<USER>/<APP>-media/;

    location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;

      if (!-f $request_filename) {
        proxy_pass http://gunicorn_domain2;
        break;
      }
    }

}

Neste momento, se eu tentar o Ip do servidor de verniz, só recebo o domínio1. Tudo estaria correto se eu mudasse o DNS dos dois domínios para apontar para o servidor de verniz ou há alguma configuração extra antes que funcione?

Pergunta 2: Eu preciso de um servidor dedicado para verniz, ou eu poderia simplesmente instalar o verniz no meu backendserver, ou o servidor ficaria sem memória rapidamente?

    
por Garreth 00 13.11.2013 / 15:31

0 respostas