最近、NGINXの使用を開始しました。NGINXをリバースプロキシに使用し、ロード時間を短縮できる静的コンテンツをそれ自体から提供できることがわかりました。ローカルマシンにTomcat/JBossサーバーがあり、静的コンテンツがNGINXから提供され、Tomcat/JBossによってすべて静止されるように、NGINXをその前に配置したいです。 Tomcat/JBossアプリケーションはhttp://localhost:8081/Test
で実行されていますが、NGINX構成は正常に機能しましたが、css/js/jpg
ファイルをロードできません。ここに静的コンテンツが存在する私の戦争の構造があります
Test.war
TEST
|
|--->Resources
| |------->CSS
| | |----> style.css
| |
| |-------->Images
| |----> a.jpg
| |----> b.jpg
|
|--->WEB-INF
| |----->Web.xml
| |----->spring-servlet.xml
|
|--->JSP
|---->login.jsp
私は問題が絶対パスのためだと思うので、リソースフォルダをコピーしてNGINXのいくつかのフォルダに入れ、Tomcat/JBossに行くのではなく独自のディレクトリからファイルを選択するようにNGINXを設定する必要がありますか?私は新しいので、私はこれを行うという考えを持っていません。誰もがこれで私を助けることができます。これはNGINX(windows)のconfファイルです
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/Host.access.log main;
location / {
proxy_pass http://127.0.0.1:8081/Test/;
}
Regexpでlocationを追加できます。
server {
listen 80;
server_name localhost;
location ~* \.(js|jpg|png|css)$ {
root path/to/Tomcat/document/root/Test/;
expires 30d;
}
location / {
proxy_pass http://127.0.0.1:8081/Test/;
}
}
試用
server {
listen 80;
server_name localhost;
location ~* \.(css|js|gif|jpe?g|png)$ {
expires 168h;
}
location / {
proxy_pass http://127.0.0.1:8081/Test/;
}
}
テスト方法
CLIでab -c 20 -n 1000 https://your-site/any-file
を実行します
テストにかかった時間が大幅に減少します。