<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for chrismeller</title><link>http://disqus.com/by/chrismeller/</link><description></description><atom:link href="http://disqus.com/chrismeller/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Thu, 30 Mar 2017 19:56:10 -0000</lastBuildDate><item><title>Re: Creating and ManagingSSLCertificates With Nginx</title><link>http://blog.chrismeller.com/creating-and-managing-ssl-certificates-with-nginx#comment-3232474025</link><description>&lt;p&gt;That directory contains your SSL private key, which should be kept secret. If anyone else were to get ahold of it they could decrypt your SSL traffic, host a fake site, etc.&lt;/p&gt;&lt;p&gt;That command sets the permissions on the directory and all the files in it so that the owner (root, if you were following the command above it) can read and write to them, but no one else has any access at all. It's preventing someone else with a user account on the box, but without root access, from reading the keys.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Thu, 30 Mar 2017 19:56:10 -0000</pubDate></item><item><title>Re: GettingPHPHTTPS-Detection Working in Nginx</title><link>http://blog.chrismeller.com/getting-php-https-detection-working-in-nginx#comment-1796214948</link><description>&lt;p&gt;That completely depends upon how your server is configured and what OS you're running Nginx on. As you can see it's in the `server` block of your vhost config. You'll have to track that down on your own (though mine are all in /etc/nginx/sites-available that is purely my convention and may not be true of yours).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Fri, 16 Jan 2015 13:55:01 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1782862873</link><description>&lt;p&gt;If you've got multiple FPM pools (say to protect the resources of one site from another) then you would logically have multiple listeners (either sockets or ports) that Nginx would need to relay traffic to. So in that case you'd definitely need multiple upstreams.&lt;/p&gt;&lt;p&gt;One error I see in your example is that you've named both the upstreams "php". Remember that those need to be unique as well, so Nginx knows which upstream you're telling it to use.&lt;/p&gt;&lt;p&gt;Now the real question is... should you do this? I don't, but that's because I run a very small VPS that only hosts my own personal sites. If one of them gets clobbered it's probably going to take the entire server down anyway, so there's no point in adding the extra overhead to use multiple FPM pools (since each pool would have its own set of processes listening and its own pm. min_spare_servers).&lt;/p&gt;&lt;p&gt;I probably *would* recommend using multiple pools if you're hosting independent client sites, though. Giving each one their own set of processes can definitely help make sure that they're less vulnerable to one site killing everything. Just remember that all that "how many processes can I run with the amount of RAM I have?" math will get a lot more complicated.&lt;/p&gt;&lt;p&gt;You would also obviously need multiple upstreams (though they'd be using ports, not sockets) if you had Nginx sitting in front of more than one backend server that ran FPM (rather than running FPM on the same box as Nginx), but that opens up a whole different can of worms we won't go into.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Fri, 09 Jan 2015 12:58:48 -0000</pubDate></item><item><title>Re: Amazon CloudFront vs. Rackspace Cloud FilesCDN Performance</title><link>http://blog.chrismeller.com/amazon-cloudfront-vs-rackspace-cloudfiles-cdn-performance#comment-1639268820</link><description>&lt;p&gt;Do you have any thoughts on the best way to test the initial "cache miss" scenario? To properly test it seems like I would need to automate a series of pushes of new versions / different files regularly over the monitoring period, then link those up with the stats again on the backend for reporting, which may take a little more effort than I'm willing to put in.&lt;/p&gt;&lt;p&gt;I'm also not sure there's any real way for an outsider to tell how many edge servers exist or which is being used for a given request, so I don't think there's any way to measure the "reach" of each CDN.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Thu, 16 Oct 2014 13:16:46 -0000</pubDate></item><item><title>Re: Creating and ManagingSSLCertificates With Nginx</title><link>http://blog.chrismeller.com/creating-and-managing-ssl-certificates-with-nginx#comment-1632632454</link><description>&lt;p&gt;Yes, 4096 will be slower than 2048, just as 2048 was slower than 1024. No one in their right mind would advocate using a 1024 bit key simply because it's faster, though.&lt;/p&gt;&lt;p&gt;Unless you're running a large CDN, I'd say that the SSL overhead is such a small fraction of the load on your servers that the size of the key is not going to be a determining factor in any performance metric. One database connection is going to involve way more latency and far more resources than the extra 2048-bits in the SSL process.&lt;/p&gt;&lt;p&gt;I'm not sure what you're asking in regards to self-signed certs.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Sun, 12 Oct 2014 21:15:18 -0000</pubDate></item><item><title>Re: Amazon CloudFront vs. Rackspace Cloud FilesCDN Performance</title><link>http://blog.chrismeller.com/amazon-cloudfront-vs-rackspace-cloudfiles-cdn-performance#comment-1624267525</link><description>&lt;p&gt;I've considered re-running it, but haven't. You've kind of piqued my interest, so I might... but no promises.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Tue, 07 Oct 2014 17:45:42 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1367362176</link><description>&lt;p&gt;You've already got an instance of FPM running, then. Running `ps aux | grep -i php` should show you. I wouldn't be able to tell you how another is running, but that's your problem.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Fri, 02 May 2014 20:11:16 -0000</pubDate></item><item><title>Re: Get Your GitHub Issues as anRSS Feed</title><link>http://blog.chrismeller.com/get-your-github-issues-as-an-rss-feed#comment-1346400453</link><description>&lt;p&gt;You should be able to easily clone the Yahoo Pipe and use this Github API endpoint to get just pull requests: &lt;a href="https://developer.github.com/v3/pulls/#list-pull-requests" rel="nofollow noopener" target="_blank" title="https://developer.github.com/v3/pulls/#list-pull-requests"&gt;https://developer.github.co...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Sat, 19 Apr 2014 13:08:23 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1340946784</link><description>&lt;p&gt;I use a redirect to SSL in two different ways depending on the goal.&lt;/p&gt;&lt;p&gt;In one instance, I want all requests to end up on SSL. So for &lt;a href="http://www.example.com" rel="nofollow noopener" target="_blank" title="http://www.example.com"&gt;http://www.example.com&lt;/a&gt; everything should end up at &lt;a href="https://www.example.com" rel="nofollow noopener" target="_blank" title="https://www.example.com"&gt;https://www.example.com&lt;/a&gt;. In that case, I simply set up a barebones vhost for the non-SSL version: &lt;a href="https://gist.github.com/chrismeller/10912818" rel="nofollow noopener" target="_blank" title="https://gist.github.com/chrismeller/10912818"&gt;https://gist.github.com/chr...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If you're going to always redirect all requests to SSL, you should also look at including the Strict-Transport-Security header so modern browsers never try to hit the plain text version anyway.&lt;/p&gt;&lt;p&gt;If there are only certain requests that I want to ensure are SSL-protected, like the login and admin pages of a CMS where passwords might be seen, you can redirect only those requests: &lt;a href="https://gist.github.com/chrismeller/10912995" rel="nofollow noopener" target="_blank" title="https://gist.github.com/chrismeller/10912995"&gt;https://gist.github.com/chr...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Here the vhost is otherwise the same as the example I gave in the guide, but if the path starts with admin or auth we want to make sure those are SSL requests.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Wed, 16 Apr 2014 13:53:40 -0000</pubDate></item><item><title>Re: GettingPHPHTTPS-Detection Working in Nginx</title><link>http://blog.chrismeller.com/getting-php-https-detection-working-in-nginx#comment-1338528263</link><description>&lt;p&gt;Good catch. In my &lt;a href="https://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian" rel="nofollow noopener" target="_blank" title="https://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian"&gt;newer guide&lt;/a&gt;, I actually include ssl on the listen directive, but I was still including the ssl on line as well. I've updated both posts, thanks for the heads up!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Tue, 15 Apr 2014 15:11:17 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1231517157</link><description>&lt;p&gt;Short answer: I put it in conf.d/php.conf&lt;br&gt;Long answer: Anywhere that nginx will include it. In my examples all the config files are in /etc/nginx/conf.d/ because those are the config files included by default. It doesn't actually matter what you name the file, just something that you will recognize (php seemed obvious to me).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Wed, 05 Feb 2014 01:04:04 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1229108680</link><description>&lt;p&gt;Thanks, cakuki! That's a nice logical separation, if you need both types of listeners!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Mon, 03 Feb 2014 12:40:13 -0000</pubDate></item><item><title>Re: Another SC Data Breach</title><link>http://www.fitsnews.com/2013/12/28/another-sc-data-breach/#comment-1179879862</link><description>&lt;p&gt;Per the letter SCHIP sent out (I just happened to get one as a former subscriber who was included in the breach), the auditors found out about the breach on October 17th and notified SCHIP on October 21st. Why no one else was notified until two months later is anyone's guess.&lt;/p&gt;&lt;p&gt;I've already filed a FOIA request with the DOI asking for details. They claim not to have any information and haven't told me who would yet. I plan to follow up again on Monday.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Sat, 28 Dec 2013 23:01:19 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1177831855</link><description>&lt;p&gt;Can you check what OS (and version) and version of Nginx you're using that you had to add SCRIPT_FILENAME? I haven't had to add that manually in quite a while.&lt;/p&gt;&lt;p&gt;The socket extension has no special meaning beyond letting you know it's a socket when you list directory contents. If the default has changed you can change either it or your Nginx config, it's all good.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Thu, 26 Dec 2013 21:49:19 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1156089538</link><description>&lt;p&gt;The first error indicates that either Nginx or PHP-FPM is mis-configured. Check your Nginx php upstream to make sure the server directive is correct. More likely, you didn't set the listen directive in your PHP-FPM pool configuration "socket.conf" in my guide.&lt;/p&gt;&lt;p&gt;The latter errors are most likely because the default vhost configuration includes an incompatible `listen` directive. Double check all your vhosts and make sure they have the same `listen` directive.&lt;/p&gt;&lt;p&gt;If you can't find the problem, move into /etc/nginx and run `grep -ri "listen" .`, which should show you every file that might include the problem.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Mon, 09 Dec 2013 11:57:15 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1156027897</link><description>&lt;p&gt;Blindly, off the top of my head, with 0 details? I have no clue. Like any time you're troubleshooting, check your error log.&lt;/p&gt;&lt;p&gt;The main nginx log (as opposed to the vhost-specific ones you define in each config) is usually /var/log/nginx/error.log, which may contain more details.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Mon, 09 Dec 2013 11:13:55 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1153586138</link><description>&lt;p&gt;Like I said, it all depends on exactly what you're running. You should start off low, run your application for a while (even if it's just you stepping through it like a normal user for a while, possibly over a day or two), and then see how much memory each php-fpm process is occupying on your system (`ps aux | grep php` or similar).&lt;/p&gt;&lt;p&gt;After that, you need to divide out the amount of RAM you have left on your box (make sure to account for MySQL or any other background processes that you'll have running) and figure out the number of processes you can reasonably accommodate.&lt;/p&gt;&lt;p&gt;Without the exact error, I can't help with the "too many processes" error either.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Fri, 06 Dec 2013 20:10:50 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1131772194</link><description>&lt;p&gt;In the example he provides, FPM actually understands that the request is for random.gif, even if Nginx attempts to pass the request to it based on the ending of .php.&lt;/p&gt;&lt;p&gt;If you check your error.log file you'll see a response from FPM along the lines of: Access to the script '/whatever/public/random.gif' has been denied (see security.limit_extensions)&lt;/p&gt;&lt;p&gt;The security.limit_extensions pool option was added in PHP 5.3.9 and defaults to only including the extension .php, preventing exactly this problem. Since 5.3.9 was released almost two years ago (January, 2012) there's a pretty good bet most of us are fine (Ubuntu 12.04 LTS includes 5.3.10, but if you're still running 10.04 LTS you might have an issue).&lt;/p&gt;&lt;p&gt;For some inexplicable reason this isn't included in the PHP documentation, but the top comment on the page points it out: &lt;a href="http://php.net/manual/en/install.fpm.configuration.php#usernotes" rel="nofollow noopener" target="_blank" title="http://php.net/manual/en/install.fpm.configuration.php#usernotes"&gt;http://php.net/manual/en/in...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Wed, 20 Nov 2013 16:30:46 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-1077539598</link><description>&lt;p&gt;The Ubuntu and Debian defaults I've seen usually have a `gzip_disable msie` line, which is a faster version of the regex pattern most people stick in there: &lt;a href="http://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_disable" rel="nofollow noopener" target="_blank" title="http://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_disable"&gt;http://nginx.org/en/docs/ht...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If you don't have one you can simply add: gzip_disable msie; in your gzip.conf.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Thu, 10 Oct 2013 09:34:45 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-905747613</link><description>&lt;p&gt;I've actually just recently stopped using the PPA. It looks like it's not being updated as regularly as it used to be... But the official Nginx Debian / Ubuntu repository works fine. I'll update that soon.&lt;/p&gt;&lt;p&gt;As for the default config, you're probably correct. I may have accidentally skipped over removing that bit from the default config. That's what happens when you're writing a guide after the fact! I'm in the process of migrating some sites to a new box now (it's there, I just have to get around to configuring it!), so I'll be sure to give everything another run-through as I do and make any needed updates.&lt;/p&gt;&lt;p&gt;Thanks very much for the feedback!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Thu, 23 May 2013 08:02:03 -0000</pubDate></item><item><title>Re: Configuring and OptimizingPHP-FPMand Nginx on Ubuntu (or Debian!)</title><link>http://blog.chrismeller.com/configuring-and-optimizing-php-fpm-and-nginx-on-ubuntu-or-debian#comment-896957054</link><description>&lt;p&gt;The filenames for those pieces are the headings for each section (expires is in /etc/nginx/conf.d/expires.conf, for example). There is no block - all of those declarations are server-wide, and conf.d/*.conf gets included in the main nginx.conf in the `server` block.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Tue, 14 May 2013 07:45:29 -0000</pubDate></item><item><title>Re: TestingSNICertificates With OpenSSL</title><link>http://blog.chrismeller.com/testing-sni-certificates-with-openssl#comment-837490123</link><description>&lt;p&gt;Per the &lt;a href="http://en.wikipedia.org/wiki/Server_Name_Indication#Libraries" rel="nofollow noopener" target="_blank" title="http://en.wikipedia.org/wiki/Server_Name_Indication#Libraries"&gt;SNI Wikipedia page&lt;/a&gt;, OpenSSL has supported SNI since 0.9.8f in October 2007 with a custom compile-time flag and 0.9.8j in January 2009 by default.&lt;/p&gt;&lt;p&gt;If things were back-ported for RHEL, you'd have to figure that out for yourself by checking the RedHat docs.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Thu, 21 Mar 2013 14:57:22 -0000</pubDate></item><item><title>Re: Boost your productivity: kill some variables in your life</title><link>http://franzisk.us/2013/02/18/boost-your-productivity-kill-some-variables-in-your-life/#comment-803147444</link><description>&lt;p&gt;What service do you use for the food shipments?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Mon, 18 Feb 2013 12:01:35 -0000</pubDate></item><item><title>Re: #624,683 — PaulStamatiou.com</title><link>http://paulstamatiou.com/joining-twitter#comment-775973708</link><description>&lt;p&gt;Heads up: The footnote links are broken when the post is summarized on your front page.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Wed, 23 Jan 2013 16:08:24 -0000</pubDate></item><item><title>Re: Why the NewsGatorAPIStill Sucks</title><link>http://blog.chrismeller.com/why-the-newsgator-api-still-sucks#comment-773211664</link><description>&lt;p&gt;The Newsgator Sync service was discontinued in 2009: &lt;a href="http://nick.typepad.com/blog/2009/07/the-end-of-newsgator-sync-what-it-means-for-feeddemon-customers.html" rel="nofollow noopener" target="_blank" title="http://nick.typepad.com/blog/2009/07/the-end-of-newsgator-sync-what-it-means-for-feeddemon-customers.html"&gt;http://nick.typepad.com/blo...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">chrismeller</dc:creator><pubDate>Sun, 20 Jan 2013 11:35:09 -0000</pubDate></item></channel></rss>