Last week, one of our application servers died. We have four app servers, so in theory, the death of one app server shouldn't bring the entire platoon down. However, real-life had other plans: 95% of requests were handled fine, but around 5% were being dropped. Here's the story of how we diagnosed and fixed the issue with our realtime charts.
The Problem
Our web stack looks like this: A web server running HAProxy (using Apache to process HTTPS requests), which then uses round-robin …
…to enable non-ssl mode has no effect. This commit ensures we render a both an HTTP and HTTPS version of the Chef API lb config. This behavior now also matches Private Chef.
This fixes the following issues:
CHEF-4029 configurable bookshelf url & nginx ssl port issue
Ensure Nginx config respects configured ports.
This patch makes Nginx's rewrite and proxy set header directives respect the configured SSL port ( node['chef_server']['nginx']['ssl_port'] …
§ Absolutely! 14 lessons after five years of professional programming :
6. If you feel one use-case scenario will "probably be ok", that's the one that's going to lead to catastrophic failure a month in production. Trust your paranoid gut, test and verify.
§ 5 ways to implement HTTPS in an insufficient manner (and leak sensitive data) . A follow up to, SSL is not about encryption :
It's about assurance. It's about establishing …
…for yourself. Use the FQDN of your newly installed Chef Server, with HTTPS. The validation key needs to be copied over from the Chef Server from /etc/chef-server/chef-validator.pem to ~/.chef to use it for automatically bootstrapping nodes with knife bootstrap . % knife configure -i WARNING: No knife configuration file found Where should I put the config file? [/home/jtimberman/.chef/knife.rb] Please enter the chef server URL: [http://chef.example.com:4000] https://chef.example.com Please …
…acceleration is slower than a normal UIScrollView. Caching data with HTTPS didn't seem to work, so we dropped in SDURLCache . Handling refreshes with content that pops in "above" the current scroll position like a UITableView/ UICollectionView is not perfect yet. Despite these issues, there's plenty of benefits :
Rapid iteration on our mobile web views without pushing a new build
All mobile web users on any device benefit …
…the TCP handshake is complete, and if we're connecting to a secure destination ( HTTPS), then the SSL handshake must take place. This can add up to two additional roundtrips of latency delay between client and server. If the SSL session is cached, then we can "escape" with just one additional roundtrip.
Finally, Chrome is able to dispatch the HTTP request ( requestStart in the Nav Timing figure above). Once received, the server can process the request and then stream …
I hate dealing with server mysteries.
Squash - Online bug trackers with some interesting new capabilities.
How to: Configure Burp and Chrome for HTTPS ( SSL) packet inspection and web site debugging on Mac OSX - A useful trick to know.
Case Study: Pro-active Log Review Might Be a Good Idea - A cute story of developer malfeasance.
jQuery 1.9 final, jQuery 2.0 beta, Migrate final released - Big updates from the jQuery folks.
Thredis - Threaded fork of redis.
Configure Elastic Beanstalk for HTTPS
Our application uses HTTPS to secure our users from snoopers. It's highly recommended that all portions of your site be served over HTTPS (not just the registration/login portions). To setup HTTPS on Elastic Beanstalk requires two steps. First, create and upload an SSL certificate, then configure Elastic Beanstalk to use your certificate.
For a production application, you should use a purchased certificate from a reputable Certificate Authority…
Configuring HAProxy for HTTP, HTTPS, and SPDY
What we want to do is to configure our HAProxy as an SSL termination proxy . Meaning, HAProxy will be the one serving our SSL certificate back to the client, and all traffic forwarded to our internal servers will flow unencrypted . This also means that HAProxy will need to handle the NPN handshake. In fact, ideally, it should handle and route all types of traffic: HTTP, HTTPS, and SPDY.
defaults log 127 .0.0.1 local0 …
§ Well written and with an interactive map you can explore, hopefully this will drive the point home. Latency: The New Web Performance Bottleneck :
when it comes to your web browsing experience, it turns out that latency, not bandwidth, is likely the constraining factor today.
§ HTTP Strict Transport Security is nifty:
HSTS tells browsers to always make requests over HTTPS to HSTS sites. Sites become HSTS either by being built into the browser, or by advertising a header