Nginx

如何配置 Glassfish + NGINX 以使用 NGINX 提供靜態文件?

  • June 20, 2012

我有一個帶有 Glassfish v3 + Nginx 設置的 EC2 ubuntu 來託管我的 Java Web 應用程序。此應用程序作為 WAR 文件部署到 Glassfish。NGINX 目前正在將所有請求傳遞給 glasshfish 應用伺服器,包括靜態圖像、css 等、javascripts 等。

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

}

我已經解決了這個問題 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) 將戰爭文件解壓縮到此文件夾。擺脫 WEB-INF 文件夾

d) 重啟 nginx 。要進行驗證,請在保持 NGINX 正常執行的同時停止您的 Web 應用程序並從您的 Web 應用程序訪問圖像或 CSS。

引用自:https://serverfault.com/questions/399892