Problemas potenciais com o uso de Nginx e Apache no mesmo servidor?

3

Eu instalei o nginx para lidar com solicitações ao lado do apache. Antes, o apache escutava na porta 80 e agora mudei para o nginx para escutar na porta 80 e no apache em alguma porta obscura e ter nginx proxy_pass para o apache se a requisição for para conteúdo não-estático.

Minha configuração nginx contém o seguinte:

server {
    listen 80;
    server_name static.test.domain.com;
    location / {
        root   /home/test/www/static;
        index  index.html index.htm;
    }

}

server {
    listen       80;
    server_name domain.com *.domain.com;
    location /
    {
        proxy_set_header Server "testserver";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8800;

    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

A configuração do vache do apache tem o seguinte:

NameVirtualHost *:8800

<VirtualHost *:8800>
  DocumentRoot /var/www/html
  ServerName domain.com
  ServerAlias www.domain.com
</VirtualHost>

<VirtualHost *:8800>
  DocumentRoot /home/test/www
  ServerName test.domain.com
</VirtualHost>

...

Tenho notado que as solicitações estão mais rápidas agora, mas também notei que o nginx está aparecendo em todo o cabeçalho da solicitação no campo Servidor, mesmo que a solicitação seja para páginas não estáticas. Isso é um problema em potencial? Eu vi alguns servidores que usam o nginx no mesmo IP como minha configuração, mas o campo Servidor é diferente (o Apache aparece se for uma solicitação de conteúdo não estático, o nginx aparece quando estático).

Além disso, estou usando o APC para armazenar em cache o opcode e estou usando o .htaccess com algumas regras de redirecionamento no diretório do meu site (estou pensando em portar algumas regras do apache para o nginx? Isso é necessário?) . Eu também tenho alguns scripts de cron Java que são executados (isso impedirá o processo nginx?) Essa nova configuração pode levar a possíveis problemas?

Muitas perguntas, eu sei. Mas obrigado antecipadamente!

Mais informações: usando o nginx 1.0.6 com o apache 2.2 em execução no Centos 5 de 32 bits.

Meu arquivo .htaccess (isso precisa ser transferido para o apache?):

# BEGIN Compress text files
<ifModule mod_deflate.c>
  <filesMatch "\.(css|js|x?html?|php)$">
    SetOutputFilter DEFLATE
  </filesMatch>
</ifModule>
# END Compress text files


# BEGIN Expire headers
<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 604800 seconds"
  ExpiresByType application/javascript "access plus 604800 seconds"
  ExpiresByType application/x-javascript "access plus 604800 seconds"
  ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>
# END Expire headers


# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
  <filesMatch "\.(ico|jpe?g|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>
  <filesMatch "\.(css)$">
    Header set Cache-Control "max-age=604800, public"
  </filesMatch>
  <filesMatch "\.(js)$">
    Header set Cache-Control "max-age=604800, private"
  </filesMatch>
</ifModule>
# END Cache-Control Headers


# BEGIN Turn ETags Off
<ifModule mod_headers.c>
  Header unset ETag
</ifModule>
FileETag None
# END Turn ETags Off
    
por lamp_scaler 30.08.2011 / 04:52

1 resposta

4

Considere instalar mod_rpaf para o Apache, isso ajudará você a obter endereços IP dos clientes nos logs de acesso do Apache, não o endereço IP do servidor (tecnicamente, o nginx solicita páginas do Apache para que o Apache reconheça seu IP como um cliente IP sem mod_rpaf ). Este é o único problema possível com a sua configuração que eu posso pensar, tudo parece correto. É correto ter nginx em todos os cabeçalhos, já que o nginx funciona como uma interface para todas as páginas da web, tanto estáticas quanto dinâmicas.

    
por 30.08.2011 / 08:15