<html><head><meta http-equiv="Content-Security-Policy" content="script-src 'self'; img-src * cid: data:;"><meta http-equiv="Content-Security-Policy" content="script-src 'self'; img-src * cid: data:;"><meta http-equiv="Content-Security-Policy" content="script-src 'self'; img-src * cid: data:;"><style id="outgoing-font-settings">#response_container_BBPPID{font-family: initial; font-size:initial; color: initial;}</style></head><body style="background-color: rgb(255, 255, 255); background-image: initial; line-height: initial;"><div id="response_container_BBPPID" style="outline:none;" dir="auto" contenteditable="false"> <div name="BB10" id="BB10_response_div_BBPPID" dir="auto" style="width:100%;"> There are websites that check web server performance. I haven't bothered with them in years, but the suggestions on browser caching were useful. Google will find half a dozen. </div> <div name="BB10" id="response_div_spacer_BBPPID" dir="auto" style="width:100%;"> <br style="display:initial"></div><div name="BB10" id="response_div_spacer_BBPPID" dir="auto" style="width:100%;"><span style="font-family: initial; font-size: initial;">This site sticks in my brain because it caught a bug in my setup. They have a free demo. </span></div><div name="BB10" id="response_div_spacer_BBPPID" dir="auto" style="width:100%;"><span style="font-family: initial; font-size: initial;">https://www.tinfoilsecurity.com/</span></div><div name="BB10" id="response_div_spacer_BBPPID" dir="auto" style="width:100%;"><span style="font-family: initial; font-size: initial;">Not really performance, but you might as well fix the holes. </span></div><div name="BB10" id="response_div_spacer_BBPPID" dir="auto" style="width:100%;"><br></div><div name="BB10" id="response_div_spacer_BBPPID" dir="auto" style="width:100%;"><br></div> <div id="blackberry_signature_BBPPID" name="BB10" dir="auto"> <div id="_signaturePlaceholder_BBPPID" name="BB10" dir="auto"></div> </div></div><div id="_original_msg_header_BBPPID" dir="auto"> <table id="_pHCWrapper_BBPPID" width="100%" style="background-color: white; border-spacing: 0px; display: table; outline: none;" contenteditable="false"><tbody><tr><td colspan="2" style="padding: initial; font-size: initial; text-align: initial; background-color: rgb(255, 255, 255);"> <div style="border-right: none; border-bottom: none; border-left: none; border-image: initial; border-top: 1pt solid rgb(181, 196, 223); padding: 3pt 0in 0in; font-family: Tahoma, "BB Alpha Sans", "Slate Pro"; font-size: 10pt;"> <div id="from"><b>From:</b> targon@technologist.com</div><div id="sent"><b>Sent:</b> November 18, 2019 6:59 PM</div><div id="to"><b>To:</b> nginx@nginx.org</div><div id="reply_to"><b>Reply-to:</b> nginx@nginx.org</div><div id="subject"><b>Subject:</b> Re: Expert needed to Tune Nginx For Best Performance</div></div></td></tr></tbody></table> <br> </div><!--start of _originalContent --><div name="BB10" dir="auto" style="background-image: initial; line-height: initial; outline: none;" contenteditable="false"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""></div>Hi J,<div class=""><br class=""></div><div class="">There’s a guy on Upwork (seems to me MIA) who advertises a service that covers my requirements:</div><div class=""><br class=""></div><div class=""><a href="https://www.upwork.com/fl/koencalliauw" class="">https://www.upwork.com/fl/koencalliauw</a></div><div class=""><br class=""></div><div class=""><div class="up-active-container" style="color:rgb( 34 , 34 , 34 );font-family:'gotham ssm' , 'helvetica' , 'arial' , sans-serif;font-size:13px"><h3 class="m-0-top ng-scope m-sm-bottom" style="margin-right:0px;margin-left:0px;font-family:inherit;line-height:24px;font-size:17px;font-weight:500;padding-top:0px;margin-top:0px !important;margin-bottom:10px !important"><span class="up-active-context-title inline-block fe-job-title m-lg-right up-active-context" style="margin-right:30px !important;display:inline-block"><span class="ng-binding">Web Performance Expert / Professional Linux Systems Engineer</span></span></h3></div><div class="cfe-overview up-active-container" style="color:rgb( 34 , 34 , 34 );font-family:'gotham ssm' , 'helvetica' , 'arial' , sans-serif;font-size:13px"><div class=""><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class="">As a systems engineer and PHP developer, I have developed a lot of skills in the area of performance optimization. Web performance is extremely important for your visitors as well as for how your rank in the major search engines. </span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class=""><br class=""></span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class="">My approach to helping clients consists of the following: </span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class=""><br class=""></span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class="">- Establishing a baseline performance of a specific problematic page, that can be easily reproduces - Analyse the HTML/CSS and Javascript loading to detect any bottlenecks on the page </span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class="">- Optimise loading of external assets by following best modern practices </span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class="">- Analyse the Linux server configuration, this means CPU, Memory and disk performance, Apache / Nginx configuration, PHP configuration, etc. </span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class="">- Profile the web application to detect the parts of the code that take up the most CPU time (like for example slow SQL queries), use the most memory, are waiting for disk I/O the longest, or transferring the most data over the network </span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class="">- Finally, I write a quick report to the client with my findings, and upon agreement, I start optimising the code, system configuration, etc. in order to bring down the time it takes for the page to load. </span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class="">- Caching can be implemented (like in memcached, redis, ...) and PHP OpCache can be configured and deployed </span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class="">- SSL settings can be fine-tuned to get a good rating on SSL Labs, keeping in mind the visitors and their browsers. </span></div><div style="margin-top:0px;margin-left:0px;line-height:21px;word-wrap:break-word;margin-right:30px !important;margin-bottom:0px !important;white-space:pre-line !important" class=""><span class=""><br class=""></span></div></div></div><div><br class=""><blockquote type="cite" class=""><div class="">On 16 Nov 2019, at 17:26, j94305 <<a href="mailto:nginx-forum@forum.nginx.org" class="">nginx-forum@forum.nginx.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Optimizing for production is not simply an optimization of one component,<br class="">e.g., NGINX.<br class=""><br class="">This is also about your security model, the application architecture and<br class="">scaling abilities.<br class=""><br class="">If you simply have static files to be served, place them into a memory-based<br class="">file system and you'll serve them blindingly fast - in theory. Actual<br class="">performance will depend on the locations of your clients, with their<br class="">latencies and bandwidths, so the approach may be not to accelerate one NGINX<br class="">server location, but rather have a geographic distribution to serving<br class="">content at the edge.<br class=""><br class="">If you need to serve to lower-bandwidth clients, gzip compression may be<br class="">essential for latencies. If you have clients with broadband capabilities,<br class="">you may want to save the extra CPU cycles for other tasks.<br class=""><br class="">If your security model requires complex signature verification on every<br class="">request, you may need significantly more CPU power in there, compared to<br class="">when you simply handle easily-verifiable cookies (which were assigned<br class="">through a more compute-intensive calculation and verification scheme - but<br class="">only once per session). OIDC-based schemes come to my mind.<br class=""><br class="">If you have different types of loads, it is sensible to separate them.<br class="">Static files will be served by one cluster of servers, dynamic content will<br class="">be served by another. Having auto-scaling groups on the application side ,<br class="">you can scale well, assuming state-less micro-services there.<br class=""><br class="">If there is a broadly varying spectrum of load situations, you may want to<br class="">consider clusters of NGINX, possibly with auto-scaling, to handle loads more<br class="">effectively. Optimizing single NGINX instances may not what will really<br class="">boost performance enough.<br class=""><br class="">So, my point is: optimizing any application environment for production use<br class="">is not just a matter of nifty directives to speed up NGINX. It's a question<br class="">of optimizing the architecture AND its components, including the application<br class="">services. I've seen massive speed-ups just by changing the application into<br class="">a set of state-less micro-services - focus on "state-less".<br class=""><br class="">While you will find people who help you with NGINX optimization in a given<br class="">scenario, this may not be what you really need to optimize your entire<br class="">application, including NGINX.<br class=""><br class="">Cheers,<br class="">--j.<br class=""><br class="">Posted at Nginx Forum: <a href="https://forum.nginx.org/read.php?2,286223,286224#msg-286224" class="">https://forum.nginx.org/read.php?2,286223,286224#msg-286224</a><br class=""><br class="">_______________________________________________<br class="">nginx mailing list<br class=""><a href="mailto:nginx@nginx.org" class="">nginx@nginx.org</a><br class=""><wbr><a href="http://mailman.nginx.org/mailman/listinfo/nginx">http://mailman.nginx.org/mailman/listinfo/nginx</a><wbr><br class=""></div></div></blockquote></div><br class=""></div><!--end of _originalContent --></div></body></html>