como usar o nginx como um proxy reverso de armazenamento em cache para substituir o squid / verniz

4

o seguinte é nossa configuração atual nos aplicativos

mas gostaríamos de adicionar nginx como cache de proxy reverso, como lula ou verniz é possível editar essa configuração para habilitar esse comportamento de cache ou eu preciso adicionar outro nginx na frente desta configuração como faria para o squid ou verniz

se isso puder ser feito sem recorrer ao uso de squid e verniz, seria bom ter a configuração completa em nginx

muito obrigado

upstream backend_appname{
     #start1.someserver.com
     server start1.someserver.com:7810 fail_timeout=3s;
     server start1.someserver.com:7811 fail_timeout=3s;
     server start1.someserver.com:7812 fail_timeout=3s;
     server start1.someserver.com:7813 fail_timeout=3s;


}
server {
    server_name  appname.someserver.com;
    listen 80;
    access_log   logs/access_appname.log;
    #error_log   logs/error_appname.log;

    location /nginx_status {
        stub_status on;
        access_log   off;
    }

    location /static {
        root   /home/someuser/work/appname;
        expires max;
        add_header Cache-Control public,max-age=604800,post-check=604800,pre-check=1209600;
    }
    location / {
        root   /home/someuser/work/appname;
        fastcgi_pass backend_appname;
      set  $addr  $remote_addr;

     if ($http_x_forwarded_for ~ "(?:^|,)\s*(\d+\.\d+\.\d+\.\d+)\s*$") {
           set  $addr  $1;
     }

        fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
        fastcgi_param PATH_INFO       $fastcgi_script_name;
        fastcgi_param QUERY_STRING    $query_string;
        fastcgi_param CONTENT_TYPE    $content_type;
        fastcgi_param CONTENT_LENGTH  $content_length;
        fastcgi_param REQUEST_METHOD  $request_method;
        fastcgi_param REMOTE_ADDR     $addr;
        fastcgi_param REMOTE_PORT     $remote_port;
        fastcgi_param SERVER_PROTOCOL $server_protocol;
        fastcgi_param SERVER_ADDR     $server_addr;
        fastcgi_param SERVER_PORT     $server_port;
        fastcgi_param SERVER_NAME     $server_name;

    }

}
    
por pjmorse 17.08.2009 / 23:41

2 respostas

2

Você pode usar o nginx como um proxy reverso de armazenamento em cache. Os links a seguir serão úteis.

link

link

link

    
por 16.12.2010 / 05:02
0

Eu sugeriria usar o Varnish, já que ele é feito para ser um proxy reverso e pode executar muito mais rápido que o nginx nessa capacidade.

O verniz é ajustado para o desempenho. Faz coisas malucas como compilar seus arquivos de configuração em objetos C, que são então carregados em sua memória. Isso pode não parecer muito, mas realmente faz diferença quando você tem alguma lógica definida nas configurações (via a própria linguagem VCL do Varnish, que é legal em si).

Eu vejo no que você está chegando, bu nginx não é um programa monolítico que faz tudo (diferente do apache). É feito para fazer algumas coisas e fazê-las bem ... se houver um proxy reverso melhor (Varnish), use isso!

Apenas meus pensamentos:)

    
por 16.12.2010 / 01:45