Como configurar o Glassfish + NGINX para servir arquivos estáticos com o NGINX?

3

Eu tenho um ubuntu EC2 com configuração Glassfish v3 + Nginx para hospedar meu aplicativo web java. Este aplicativo é implementado como um arquivo WAR no Glassfish. O NGINX está atualmente passando todos os pedidos para o servidor de apps glasshfish, incluindo aqueles para imagens estáticas, css etc. javascripts etc.

server {
  listen  80;
  server_name whatever.com www.whatever.com;

  access_log  /var/log/nginx/whatever.com.access.log;

  location / {
    proxy_pass  http://127.0.0.1:8080/javapp/;
    proxy_pass_header Set-Cookie;
    proxy_pass_header X-Forwarded-For;
    proxy_pass_header Host;
  }

}

    
por user193116 18.06.2012 / 21:15

1 resposta

3

Eu resolvi isso da seguinte forma a) Modifique o arquivo de configuração da seguinte forma

server {

        listen   80; ## listen for ipv4
        server_name  www.whatever.com; ## change this to your own domain name
    root   /home/ubuntu/www/public_html;
## Only requests to our Host are allowed i.e. nixcraft.in, images.nixcraft.in and www.nixcraft.in
      if ($host !~ ^(www.whatever.com)$ ) {
         return 444;
      }


    location ~* \.(jpg|jpeg|gif|css|png|js|ico)$ {
        access_log off;
        expires max;
    }

    location / {
        access_log off;
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   /var/www/nginx-default;
        }


}

b) sob a raiz HTML do Nginx (/ home / ubuntu / www / public_html) crie um subdiretório com o mesmo nome do contexto do seu aplicativo da web. por exemplo. Se o seu URL do webpp for www.whatever.com/mycoolapp, crie um diretório chamado / home / ubuntu / www / public_html / mycoolapp

c) descompacte o arquivo war para esta pasta. Livrar-se da pasta WEB-INF

d) reinicie o nginx. Para verificar, pare o seu aplicativo da web enquanto mantém o NGINX ativo e acesse uma imagem ou CSS do seu aplicativo da web.

    
por 20.06.2012 / 19:15