Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Defining Varnish under Reverse Proxy #55

Merged
merged 2 commits into from
Jun 28, 2023

Conversation

Yemaneberhan-Lemma
Copy link
Contributor

Elaborated varnish under reverse proxy as common area of concern in web projects.

@netlify
Copy link

netlify bot commented Jun 7, 2023

Deploy Preview for axelerant-engg-handbook ready!

Name Link
🔨 Latest commit 9fbc2b0
🔍 Latest deploy log https://app.netlify.com/sites/axelerant-engg-handbook/deploys/6492f3cc73bf9f00089fa9ca
😎 Deploy Preview https://deploy-preview-55--axelerant-engg-handbook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

Comment on lines 43 to 49
Varnish acts as a middleman between the client and the web server, passing requests from the client to the server and then returning the server's response to the client. Varnish also caches the content received from the server, making it faster to serve content to subsequent requests. This caching feature is especially useful for websites that serve static content, as it can significantly reduce the load on the web server and improve website performance.

Varnish Reverse Proxy works by intercepting all incoming web requests and caching the content of the request on the server side. This means that subsequent requests for the same content will be served directly from the cache instead of having to be retrieved from the origin server. This speeds up the response time and reduces the server load.

When a user makes a request to a website, the request is sent to the Varnish server. The Varnish server then looks in its cache to see if it already has a copy of the content requested. If it does, the content is immediately served from the cache to the user. If it does not have a copy of the content, the request is forwarded to the origin server to retrieve the content.

Once the content is retrieved from the origin server, it is stored in the cache for future use. Varnish can also be configured to purge the cache periodically or in real-time to ensure the content is always up-to-date.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of this seems redundant. It just seems like different wording to what you have said in the first paragraph.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tried to elaborate Varnish from various views. 1st paragraph:definition, 2nd, 3rd & 4th How it works.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it can be significantly shortened. When I read it, I don't find anything that explains how it works that is not already in the first paragraph. For details, please link to the relevant pages in the Varnish documentation. Let's keep the content short and quickly readable here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noted.

- High learning curve: Varnish has a steep learning curve and requires extensive knowledge of HTTP, caching, and advanced configuration options. This can make it difficult for beginners to set up and manage.

- Limited support for dynamic content: Varnish is designed to handle static content and is less effective with highly dynamic content, such as user-generated content or real-time updates.
- Complex configuration: Varnish requires a lot of configuration to get the most out of it. Optimizing the caching configuration, for example, can be challenging and may require manual tuning to achieve the best performance.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is already mentioned in the first point.


- High learning curve: Varnish has a steep learning curve and requires extensive knowledge of HTTP, caching, and advanced configuration options. This can make it difficult for beginners to set up and manage.

- Limited support for dynamic content: Varnish is designed to handle static content and is less effective with highly dynamic content, such as user-generated content or real-time updates.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does limited support mean?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Limited support for dynamic content: Varnish primarily designed to improve the performance of static content, it can work quite well for dynamic content as well depending on the use case and configuration.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel you are saying two things here. First, you say limited support which implies there is some support but you don't explain what is not supported. Then you say it is less effective with highly dynamic content but you don't explain what that means. What would happen with highly dynamic content?

Updated contents of varnish as per comment.
@hussainweb
Copy link
Member

I think this could still be condensed but it is good enough for now.

@hussainweb hussainweb merged commit 83d5b5b into axelerant:main Jun 28, 2023
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants