Usando o nginx com o apache como proxy reverso

1

Recentemente, decidi mudar para o nginx do apache, ainda estou usando o apache como proxy reverso para cuidar de todo o meu conteúdo dinâmico. Tendo trabalhado com o apache nos últimos 2-3 anos, sei como lidar com a maior parte da configuração possível, mas com o nginx é um mundo novo.

O problema é quando estou usando aplicativos da web de terceiros, como o phpmyadmin, as imagens não carregam, geralmente eu usaria um Alias no apache, mas definir um local (o Alias do nginx) não ajudará.

nginx.conf

# primary server - proxypass
server {
    listen       80;
    server_name  domain.com www.domain.com;

    access_log  /var/www/domain/logs/access_log.nginx main;
    error_log /var/www/domain/logs/error_log.nginx warn;
    root        /var/www/domain/html/http;

    # proxy to Apache 2 and mod_python
    location / {
        proxy_pass         http://127.0.0.1:8080/;
        proxy_redirect     off;

        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_max_temp_file_size 0;

        client_max_body_size       10m;
        client_body_buffer_size    128k;

        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;

        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
 }
location /admin/tools/phpmyadmin {
        root /var/www/admin/phpmyadmin;


        }


        # Static files location
        location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
            root   /var/www/domain/html/http;
        }


}

O problema com o último bit Location é que ele deve cuidar da maior parte do static e nunca passá-lo através do apache (usando o apache apenas para um proxy reverso), mas isso também redirecionará todos imagens encontradas no / admin / tools / phpmyadmin Alias para a raiz do domínio.

Aprecie toda a ajuda. Obrigado,

    
por Adam Benayoun 23.09.2009 / 15:53

2 respostas

1

Se você está redirecionando o phpmyadmin para o apache, você precisa usar:

location ~ ^/admin/tools/phpmyadmin/(.+\.php)$

Em vez de:

location /admin/tools/phpmyadmin
    
por 24.09.2009 / 20:19
0

Suponho que a primeira estância de Localização esteja lidando com a solicitação. Tente mover a sub-rotina Location para o seu conteúdo estático acima da sub-rotina Location raiz. Não me lembro se eles são específicos do pedido, mas lembro que o Apache está com as declarações do VirtualHost. Caso contrário, você poderia mover a sub-rotina Localização para as imagens estáticas no local raiz e reescrevê-lo como um teste

if ( $request_url ~* /*.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$/ {
        root   /var/www/domain/html/http;
    }
    
por 24.09.2009 / 19:35