Dear Ivy Team

Usually the static web content such as css, js, images etc are offloaded and put in a web proxy in order to reduce the data load for the app server. Of course these files must be cached on the browser side. But still they must expire on a daily basis (since hotfixes can come in on a daily basis).

Any ideas ?

Regards John

asked 28.01 at 04:16

John%20Moser's gravatar image

John Moser
61272833
accept rate: 0%

Is the question: How to setup a reverse proxy which cache static ressources?

(28.01 at 11:59) Alex Suter ♦♦ Alex%20Suter's gravatar image

Ok ... then there is no caching support in Ivy and a proxy has to be setup.

(29.01 at 04:08) John Moser John%20Moser's gravatar image

I did not exactly understand your initial question. So your initial question was: Is there a possibility to cache static resources in the Axon.ivy Engine?

What exactly should we support in your opinion? I think its common to cache static resources on a reverse proxy to reduce the load on the application server (ivy). If the request still goes to the application server you can not reduce the load.

Or you maybe just want to set HTTP cache headers on static resources?

(29.01 at 06:53) Alex Suter ♦♦ Alex%20Suter's gravatar image

Just done some performance testing. As an example it turned out that :

291 calls were made against Ivy :

96 xhtml

15 ivp

180 static content such as js, css, png, svg etc

My suspicion (basically confirmed by visualvm) is that the performance of Ivy / Tomcat is severely hit by serving that static stuff.

cache static resources on a reverse proxy to reduce the load on the application server

I would really appreciate if this is mentioned in your documentation, it seems this is not clear to everyone.

(31.01 at 12:42) John Moser John%20Moser's gravatar image

Hi John

The resources (js, css, images) are cached one week in the browser if running with the Axon.ivy Engine, Designer is different because JSF runs there in the Development mode. Some of the resources e.g. form webcontent have an additional url parameter "xv" which is changing if the file is modified on the server (eg. when deploying new hotfix). This means then they are reloaded by the browser because they have a new adress.

I tried an 8.0.3 Axon.ivy Engine with the default Portal localy run with docker. There all resources (js, css, images) expire after a week. So if i visit it a second time all this resources come form the browser cache, see screenshot with the "Firefox Network Analysis" open: Firefox-Networkanalysis

I also tried it with our internal demo server, which has a nginx in front of the Axon.ivy Engine, same picture, just that they are served now with http2: nginx

To further improve the loading time it is may be worth to gzip the resources. But this then needs more CPU on the server. My advice is to enable this in the Front-end Server (e.g. nginx) and not in ivy, because the Front-end Server is normally optimized for this task.

link

answered 09.03 at 05:01

Christian%20Strebel's gravatar image

Christian St... ♦
3.2k31338
accept rate: 88%

edited 09.03 at 05:13

Hi Christian,

I checked your answer and see that the Expires header is always 1 week. Is there any Ivy document mention about this default configuration?

Thank you!

link

answered 03.07 at 03:46

khanh11166's gravatar image

khanh11166
515712
accept rate: 0%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×147

Asked: 28.01 at 04:16

Seen: 534 times

Last updated: 03.07 at 03:46