<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">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" up-highlight-editor="" up-edit-disabled="true" style="box-sizing: border-box; caret-color: rgb(34, 34, 34); color: rgb(34, 34, 34); font-family: "Gotham SSm", Helvetica, Arial, sans-serif; font-size: 13px;"><h3 data-ng-if="vm.vpd.profile.title && vm.vpd.profile.title.trim()" data-ng-click="vm.cfe.isServiceProfile ? vm.cfe.openEditTitleModal() : vm.openEditTitleModal()" class="m-0-top ng-scope m-sm-bottom" style="box-sizing: border-box; word-break: break-word; 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="box-sizing: border-box; margin-right: 30px !important; display: inline-block;"><span data-ng-bind-html="vm.cfe.getProfileTitle() | htmlToPlaintext | linkRewrite" class="ng-binding" style="box-sizing: border-box;">Web Performance Expert / Professional Linux Systems Engineer</span></span></h3></div><div class="cfe-overview up-active-container" up-highlight-editor="" up-edit-disabled="true" style="box-sizing: border-box; position: relative; caret-color: rgb(34, 34, 34); color: rgb(34, 34, 34); font-family: "Gotham SSm", Helvetica, Arial, sans-serif; font-size: 13px;"><o-profile-overview words="80" class="d-none ng-isolate-scope d-lg-block" placeholder="" overview="vm.cfe.getProfileDescription()" is-service-profile="vm.cfe.isServiceProfile" show-edit-icon="true" style="box-sizing: border-box; display: block !important;"><div style="box-sizing: border-box;" class=""><div style="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" 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="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" class=""><br class=""></span></div><div style="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" class="">My approach to helping clients consists of the following: </span></div><div style="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" class=""><br class=""></span></div><div style="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" 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="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" class="">- Optimise loading of external assets by following best modern practices </span></div><div style="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" class="">- Analyse the Linux server configuration, this means CPU, Memory and disk performance, Apache / Nginx configuration, PHP configuration, etc. </span></div><div style="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" 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="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" 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="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" class="">- Caching can be implemented (like in memcached, redis, ...) and PHP OpCache can be configured and deployed </span></div><div style="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" 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="box-sizing: border-box; margin-top: 0px; margin-left: 0px; line-height: 21px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; margin-right: 30px !important; margin-bottom: 0px !important; white-space: pre-line !important;" class=""><span style="box-sizing: border-box;" class=""><br class=""></span></div></div></o-profile-overview></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="">http://mailman.nginx.org/mailman/listinfo/nginx<br class=""></div></div></blockquote></div><br class=""></div></body></html>