Java WebアプリケーションをホストするためのGlassfishv3 + Nginxセットアップを備えたEC2ubuntuがあります。このアプリケーションは、WARファイルとしてGlassfishにデプロイされます。 NGINXは現在、静止画像、cssなどのJavaScriptなどのリクエストを含むすべてのリクエストをglasshfishアプリサーバーに渡しています。
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)warファイルをこのフォルダーに解凍します。 WEB-INFフォルダーを削除します
d)nginxを再起動します。確認するには、NGINXを起動したままWebアプリケーションを停止し、Webアプリケーションから画像またはCSSにアクセスします。