Atomic Floyd

After being bugged with yearly broken headphones. I invested a bit more money and got these awesome metal rugged ones. They are perfect.

flattr this!

NVA setup – nginx varnish apache

The running WordPress blogs on a well known domain is slow, if you don’t optimize for speed. As the requests are going through the full LAMP stack, caching stuff is the first stop. Second I don’t use apache as primary delivery webserver, I use nginx to do this. I have chosen this setup as it provides lots of performance and there is no need to change anything in the existing WordPress installation. Even experienced WordPress users do not see the difference on the WordPress side.

LAMP - Linux Apache MySQL PHP

LAMP - Linux Apache MySQL PHP

From LAMP to NVA

Classical LAMP setup uses following apache config for a webserver with name based virtual hosts:

##### start ww.linuxpinguin.de
Listen 80
NameVirtualHost 178.63.61.72:80
LogFormat ”%V %v %h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User−Agent}i\”” cvh
<VirtualHost 178.63.61.72:80 >
  DocumentRoot /var/www/linuxpinguin.de
  ServerName www.linuxpinguin.de
  php_admin value open_basedir /var/www/linuxpinguin.de:/usr/share/php:/usr/share/pear
  ErrorLog /var/log/apache2/linuxpinguin.de/error.log
  CustomLog ”|/sbin/cronolog −−symlink /var/log/apache2/linuxpinguin.de/access.log /var/log/apache2/linuxpinguin.de/access.log %Y−%m” cvh
</VirtualHost>
##### ende www.linuxpinguin.de
NVA - nginx varnish apache

NVA - nginx varnish apache

This is converted into the following apache config to fit into the NVA setup. As you see only the Listen port and the binding address have changed.

<VirtualHost 127.0.0.1:81>
  <Directory "/var/www/web5/web">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>
  ServerName www.linuxpinguin.de
  ServerAlias www.linux-pinguin.de
  ServerAlias linux-pinguin.de
  ServerAlias linuxpinguin.de
  ServerAdmin webmaster@linuxpinguin.de
  DocumentRoot /var/www/web5/web
  ErrorLog /var/log/apache2/error.log
  LogLevel warn
  CustomLog /var/log/apache2/access.log vhost_combined
  ServerAlias linuxpinguin.de www.linux-pinguin.de
  DirectoryIndex index.html index.htm index.php index.php5 index.php4 index.php3 index.shtml index.cgi index.pl index.jsp Default.htm default.htm
  ScriptAlias  /cgi-bin/ /var/www/web5/cgi-bin/
  AddHandler cgi-script .cgi
  AddHandler cgi-script .pl
  ErrorLog /var/www/web5/log/error.log
  AddType application/x-httpd-php .php .php3 .php4 .php5
  php_admin_flag safe_mode On
  php_admin value open_basedir /var/www/linuxpinguin.de:/usr/share/php:/usr/share/pear
  AddType text/html .shtml
  AddOutputFilter INCLUDES .shtml
  Alias /error/ "/var/www/web5/web/error/"
  ErrorDocument 400 /error/invalidSyntax.html
  ErrorDocument 401 /error/authorizationRequired.html
  ErrorDocument 403 /error/forbidden.html
  ErrorDocument 404 /error/fileNotFound.html
  ErrorDocument 405 /error/methodNotAllowed.html
  ErrorDocument 500 /error/internalServerError.html
  ErrorDocument 503 /error/overloaded.html
  AliasMatch ^/~([^/]+)(/(.*))? /var/www/web5/user/$1/web/$3
  AliasMatch ^/users/([^/]+)(/(.*))? /var/www/web5/user/$1/web/$3
  RewriteEngine on
  RewriteCond %{HTTP_HOST}   ^www\.linux-pinguin\.de [NC]
  RewriteRule ^/(.*)         http://www.linuxpinguin.de/$1 [L,R]
  RewriteCond %{HTTP_HOST}   ^linux-pinguin\.de [NC]
  RewriteRule ^/(.*)         http://www.linuxpinguin.de/$1 [L,R]
  RewriteCond %{HTTP_HOST}   ^linuxpinguin\.de [NC]
  RewriteRule ^/(.*)         http://www.linuxpinguin.de/$1 [L,R]
</VirtualHost>

Now were do the request for 127.0.0.1:8080 are coming from? They come from our varnish caching daemon. Here is the smallest configuration for it:

backend default {
  host = ”localhost ”;
  port = ”8080”; # This need to be the same as the Apache vHost port listener !
}

varnish itself listens on 127.0.0.1 port 6081, so we now need to know where varnish gets its requests from? They are coming from the nginx webserver. This is the configuration of the nginx:

###### start linuxpinguin.de
server {
 listen 80; # Default listen port
 server_name www.linuxpinguin.de linuxpinguin.de www.linux-pinguin.de linux-pinguin.de;
 access_log /var/log/apache2/linuxpinguin.de/access_log;
 gzip on; # Turn on gZip
 gzip_disable msie6;
 gzip_static on;
 gzip_comp_level 9;
 gzip_proxied any;
 gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

 location / {
  proxy_redirect off; # Do not redirect this proxy - It needs to be pass-through
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Server-Address $server_addr;
  proxy_pass_header Set-Cookie;
  proxy_pass http://127.0.0.1:6081; # Pass all traffic through to Varnish
 }
}
##### end linuxpinguin.de

flattr this!

Just|Mobile Gum Plus

Just|Mobile Gum Plus Power Pack

Just|Mobile Gum Plus Power Pack

Just got my hands on this little beauty. Charges via MiniUSB and delivers power via USB port to charge your iPhone or Mifi or whatever needs to be charged.
It does charge your iPhone4 up to three times. The 4400mAh capacity is delivered as 1000 mA.
The power pack comes with iPhone charging cable, USB charging cable and a nifty carrying pouch.

flattr this!

Krapfen (german)

Krapfen 1/3

Krapfen 1/3

Krapfen
Ein opensource Rezept

Benötigte Zutaten:

  • 1 kg Weizenmehl
  • 1 Päckchen Hefe
  • 3 EL Zucker
  • 2 Prisen Salz
  • 1/2 Tasse handwarmes Wasser
  • 1/2 Liter handwarmes Wasser
  • ausreichend Fritierfett

Benötigte Utensilien:

  • große Teigschüssel
  • Tasse
  • Grillzange
  • Friteuse
  • Blech mit Küchenpapier zum Abkühlen und Trocknen
  • zwei frische Küchenhandtücher

Zuerst das Kilo Mehl in die große Teigschüsseln geben und in der Mitte mit der Tasse eine Mulde ausheben. Das ausgehobene Mehl sollte ca. 3-4 EL sein. Das Mehl in der Tasse mit den 3 EL Zucker vermischen und das Päckchen Hefe reinbröseln.

Krapfen 2/3

Krapfen 2/3

Die zwei Prisen Salz am Rand der Teigschüssel verteilen. Nun das handwarme Wasser in die Tasse geben und das Hefe-, Zucker-, Mehlgemisch gut umrühren.
Danach die Tasse in die Mulde stehlen und die Teigschüssel mit einem frischen Küchenhandtuch abdecken.
Nun warten bis die Hefe über den Rand der Tasse gequollen ist (ca. 30 Minuten) und dann die Hefe aus der Tasse unter das Mehl mengen. Unter Zugabe des handwarmen Wassers einen Teig formen, der nicht zu trocken und nicht zu nass sein sollte. Es sollte weder Mehl in der Schüssel übrig bleiben, noch sollte der Teig an der Schüssel oder den Händen kleben.
Den fertig gekneteten Teig in die Mitte der Schüssel legen und mit einem Küchenhandtuch abdecken. Nun kann man den Teig ca 1-2 Stunden gehen lassen. (Ungefähre Verdoppelung des Volumens).
Wir mehlen die Arbeitsfläche gleichmäßig ein und formen ungefähr tischtennisballgroße Kugeln aus dem Teig, wobei wir darauf achten nicht die Luft rauszudrücken. Die Kugeln werden danach mit den beiden Küchenhandtüchern abgedeckt und für eine weitere Stunden gehen gelassen. Es empfihlt sich die Handtücher mit einem Wassersprüher leicht anzufeuchten.

Krapfen 3/3

Krapfen 3/3

Nachdem wir die Friteuse mit dem Fritierfett auf 190ºC gebracht haben immer drei Kugeln zusammen fritieren, dabei immer mal wieder mit der Grillzange wenden.
Die goldgelben Krapfen dann auch das mit Küchenpapier ausgelegte Blech zum Abkühlen und Trocknen legen.

Am Ende je nach eigenem Gusto mit Puderzucker bestreuen oder mit einer Bratenspritze mit Marmelade oder Pudding füllen.

Guten Appetit.

flattr this!