如何配置 Glassfish + NGINX 以使用 NGINX 提供静态文件?

如何配置 Glassfish + NGINX 以使用 NGINX 提供静态文件?

我有一个 EC2 ubuntu,其中安装了 Glassfish v3 + Nginx 来托管我的 java web 应用程序。此应用程序作为 WAR 文件部署到 Glassfish 。NGINX 当前正在将所有请求传递给 glasshfish 应用服务器,包括静态图像、css 等 javascript 等。

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;
  }

}

答案1

我已经按如下方式解决了这个问题 a) 修改配置文件如下

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) 在 Nginx HTML 根目录 (/home/ubuntu/www/public_html) 下创建一个与你的 web 应用程序上下文同名的子目录。例如,如果你的 webpp url 是 www.whatever.com/mycoolapp,则创建一个名为 /home/ubuntu/www/public_html/mycoolapp 的目录

c) 将 war 文件解压到此文件夹。删除 WEB-INF 文件夹

d) 重启 nginx 。为了验证,请在保持 NGINX 正常运行的同时停止 Web 应用程序,然后从 Web 应用程序访问图像或 CSS。

相关内容