Posted by fwoeck
on Thursday, July 23
Mit diesen allgemeinen Apache2-Optionen lässt sich relativ schnell und schmerzlos eine Verbesserung der Ladezeiten erreichen: Kompression und Expiration-Headers.
Die beiden verantwortlichen Module müssen aktiviert werden:
a2enmod expires
a2enmod deflate
und die globale Sektion der apache2.conf erweitert:
# gzip html, css and js
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/javascript
# far future expires headers
<FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)?d{10}$">
ExpiresDefault "access plus 10 years"
</FilesMatch>
Zu beachten wäre, dass die statischen Dateien aufgrund der langen Lebensdauer nicht aus dem Cache der Browser verschwinden werden – es sei denn, man zwingt sie dazu!
Weblinks
speed-up-your-apachepassenger-rails-app-in-2min
Posted by fwoeck
on Sunday, April 26
Auf seiner Website gibt DK Lynn eine Einführung in die Verwendung von mod_rewrite. Außer dem Link seien hier noch der pdf-Ausdruck und ein mod_rewrite-Cheat-sheet angegeben.
Material
- apache-mod_rewrite-examples
- 13_Realworld_Examples.pdf
- mod_rewrite-cheat-sheet-v2.pdf
Posted by fwoeck
on Monday, February 16
Um die Ladezeiten von Webpages unabhängig von der Serverseite clientbasiert zu beschleunigen, kann man unter anderen die Einstellungen seines Apache verändern.
mod_expires und mod_deflate
mod_expires setzt dabei sinnvolle Verfalldaten für das Caching auf statischen Dateien und mod_deflate besorgt das Gzippen von http-Inhalten.
So wird es aktiviert:
# a2enmod expires
# a2enmod deflate
<ifmodule mod_expires.c>
<filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>
Letzteres kann in der Hauptkonfiguration geschehen.
AddOutputFilterByType DEFLATE text/html text/plain text/xml
Dies ist eine schnelle und verbesserungsfähige Variante, um verzeichnisbasiert die Kompression in virtuellen Hosts zu aktivieren.
Weitere Infos: apache.org/…/mod_deflate
YSlow
Das Firefox-Plugin YSlow hilft, weitere Optimierungspotentiale aufzudecken und erklärt Hintergründe. Weiterführende Infos:
developer.yahoo.com/performance
Posted by fwoeck
on Saturday, December 13
benötigt folgende Elemente:
Das mongrel_cluster-gem
gem install mogrel
gem install mongrel_cluster
Es enthält u.a. eine init.d-Datei zum Serverstart:
/etc/init.d/mongrel_cluster
Hier muss ggf. der startende User angepasst werden – bei mir laufen die Server schlampiger weise unter meinem Useraccount:
USER=me
sites-available/default
In der entsprechenden apache2-Sitedatei finden wir die Proxydefinition:
<VirtualHost *:80>
UseCanonicalName Off
ServerAdmin webmaster@localhost
SetEnv RAILS_ENV production
DocumentRoot /var/www/railsapp/public/
<Directory /var/www/railsapp/public/>
Options +FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
<Proxy balancer://mongrel_cluster>
Order allow,deny
Allow from all
BalancerMember http://127.0.0.1:7000
BalancerMember http://127.0.0.1:7001
BalancerMember http://127.0.0.1:7002
</Proxy>
RewriteEngine On
# Rewrite index to check for static
RewriteRule ^/$ /index.html [QSA]
# Rewrite to check for Rails cached page
RewriteRule ^([^.]+)$ $1.html [QSA]
# Redirect all non-static requests to the cluster
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]
</VirtualHost>
/etc/mongrel_cluster/railsapp.yml
Hier wird der Cluster konfiguriert:
---
user: me
cwd: /var/www/railsapp
log_file: log/mongrel.log
port: "7000"
environment: production
group: me
address: 127.0.0.1
pid_file: tmp/pids/mongrel.pid
servers: 3
mod_proxy aktivieren
Einige apache2-module müssen eingebunden sein:
> ls mods-enabled/ | grep proxy
proxy_ajp.load
proxy_balancer.load
proxy.conf
proxy_connect.load
proxy_http.load
proxy.load
Kleinigkeiten
Einige Abschlussarbeiten müssen getan werden: die Verzeichnisse erzeugen, auf die referenziert wird und mit Rechten versehen, etc.
Dann läuft der Cluster ohne Mucken!
Posted by fwoeck
on Thursday, November 06
text ergänzen…
# apt-get install apache2-mpm-worker
# apt-get autoremove
# passenger-install-apache2-module
# service apache2 restart
aber: unter Ubuntu wird php5 deinstalliert!
FIXME