Apache htaccess file for .ipa files

To allow my customers to download my iOS apps signed with AdHoc or Entreprise certificates, I use this htaccess file:

<FilesMatch "\.(ipa|plist)$">
 FileETag None
 <ifModule mod_headers.c>
 Header unset ETag
 Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
 Header set Pragma "no-cache"
 Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
 </ifModule>
</FilesMatch>

AddType application/octet-stream .ipa
<Files *.ipa>
 Header set Content-Disposition attachment
</Files>

The “Caches” directives are not mandatory, but large customers are usually behind a reverse proxy and I want to avoid side effects, if possible.

So far, so good.

Nouvelles Prestations

Au cours de mes projets, je créé et j’administre des serveurs web pour fournir des contenus aux applications mobiles iOS (iPhone, iPad). Parallèlement à mon activité de développeur freelance, je gère également les serveurs d’une cinquantaine de site de PME et d’indépendants pour une société de web design partenaire.

J’ai décidé d’officialiser cette activité d’administrateur de sites et j’ai créé la structure Service Web qui permet aux clients qui produisent du contenu avec une grande facilité – sur WordPress notamment – mais qui sont complètement perdus avec les notions de DNS, de boîtes IMAP, de mise à jour ou de backup, de se concentrer sur leur activité sans avoir à se préoccuper des détails techniques. Ces services ne sont jamais inclus dans les offres d’hébergement, car ils requièrent un minimum d’implication dans la structure d’un site web.

Ma solide expérience d’administrateur web me permet aujourd’hui de créer cette nouvelle structure qui propose de fournir ces prestations professionnelles en terme d’hébergement et de maintenance sous la forme d’offres « clés en mains » accessibles à tous: Service Web

Using WordPress Jetpack with Nginx and Varnish

I need to manage a few WordPress sites and I wanted to add the Jetpack plugin so I can manage all sites from a WordPress.com account. After having installed the Jetpack plugin, trying to manage my site from WordPress.com fails with this error:
Screen Shot 2015-07-03 at 23.25.44

Watching the Varnish log, I tried the same call made by WordPress.com with curl. The endpoint /xmlrpc.php is called via POST, and curl gave me another hint:

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
 <fault>
 <value>
 <struct>
 <member>
 <name>faultCode</name>
 <value><int>-32700</int></value>
 </member>
 <member>
 <name>faultString</name>
 <value><string>parse error. not well formed</string></value>
 </member>
 </struct>
 </value>
 </fault>
</methodResponse>

The error -32700 is not really useful, but a search on DuckDuckGo gave me the solution:

Add this line to the beginning of the wp_config.php file of your site:

$_SERVER['SERVER_PORT'] = 80;

And voila, it works.

Almost everybody seems to agree on Varnish being the problem, but the solutions given did not work for me. Just in case, the solutions mentioned were to tell Varnish to ignore the calls to /xmlrpc.php.