Settings

Theme

Nginx Performance Tuning for SSL

techsamurais.com

46 points by pkandathil 12 years ago · 20 comments · 1 min read

Reader

I am by no means a pro. Just sharing my experience with Nginx tuning.

meritt 12 years ago

Sacrificing security in exchange for a minor performance boost. How does your domain score with https://www.ssllabs.com/ssltest/ after disabling those various ciphers?

Please read this discussion thread from 2 years ago for a discussion on the pros/cons of this approach: https://news.ycombinator.com/item?id=2759596

  • pkandathilOP 12 years ago

    Thank you for the info. I have updated the original article to reflect the changes.

JshWright 12 years ago

This again?

Yes.. disabling DHE ciphers will speed things up. Please understand the security implications of what you're doing. The ephemeral Diffie-Hellman cipher suites are the only way to achieve that Perfect Forward Secrecy that's been all the rage lately (sure, there are plenty of ways to screw it up even then, but it's a prerequisite).

At least consider leaving tossing a few ECDHE ciphers at the start of the list. They're plenty fast, and are a good foundation for providing PFS for your users.

riteshpatel 12 years ago

Just compared our SSL config (https://www.theticketfairy.com/) to the one at the end of the article (based on HN recommendations) and pretty happy that it was already set to pretty much exactly that (apart from us having 100m for the SSL session cache rather than 10m) :)

One more thing I'd advise is adding this directive if you're running Nginx 1.3.7 or higher:

ssl_stapling on;

The tech behind this is explained here: http://blog.cloudflare.com/ocsp-stapling-how-cloudflare-just...

Lastly, if you can be bothered to build Nginx 1.4 (1.4.2 is the latest version at the time of writing), you can enable SPDY support as well.

WatchDog 12 years ago

Perhaps someone more experienced can clarify, but is the gist of this article basically sacrificing perfect forward secrecy for more performance?

seiji 12 years ago

Good to see my conclusions from two years ago still hold: http://matt.io/technobabble/hivemind_devops_alert:_nginx_doe... (or its HN thread meritt kindly dug up: https://news.ycombinator.com/item?id=2759596)

Sadly, these days we want PFS everywhere to stop the snooping apparati, but if you're not really important and just want to stop local network or MiTM snooping, removing PFS should be okay (at least for my boring sites).

erichurkman 12 years ago

I am always extremely wary of any configuration changes that alter encryption algorithms. A simple typo can mean going from the exclusion of a weak cipher to the explicit inclusion of it.

One of the performance perks comes from the session cache. Is there an effective way to share that cache between machines serving on the same hostname? For instance: ten servers all serving round robin requests for www.example.com.

jeekajoo 12 years ago

<quote>Change your SSL cipher settings to this: ssl_ciphers ALL:!kEDH!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; </quote>. SSLv2 is flawed (http://en.wikipedia.org/wiki/Transport_Layer_Security#SSL_1....). He should disable it.

ceejayoz 12 years ago

> The web server is running on an EC2 t1.micro instance.

Why do people do this?! t1.micros run beautifully at load for 30 seconds then essentially stop entirely for a while... not to mention having much slower internet than even a m1.small.

  • stock_toaster 12 years ago

      > Why do people do this?
    
    My guess is: so they can utilize the free tier for a year. After that, I agree it makes almost no sense.
    • ceejayoz 12 years ago

      Oh, I'm happy to use it for side projects getting a few dozen hits a day. I'm continually baffled by folks running performance benchmarks against them, though.

      • vacri 12 years ago

        .micro throttling is simply domain knowledge that not everyone has.

  • pkandathilOP 12 years ago

    After the testing, you will see that we upgraded to a c1.medium instance.

    • ceejayoz 12 years ago

      OK, but initially trying to benchmark on a t1.micro indicates a lack of experience with EC2 that colors any other benchmarking you might be doing.

      Add in others' comments about this basically compromising security for speed and this is a bit of an irresponsible article.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection