12/avr/2012 Posté dans Varnish | 0 commentaire Il est possible de recharger/changer de configuration Varnish a chaud. Pour cela utilisez varnishadm
- boot : configuration initial
- 201204121052 : configuration précédemment chargé manuellement
varnish> vcl.list
200
available 8 boot
active 2 201204121052
- Charge run.vcl et le nome 201204121059
varnish> vcl.load 201204121059 /usr/local/etc/varnish/run.vcl
200
VCL compiled.
- applique la configuration se nomant 201204121059
varnish> vcl.use 201204121059
200
varnish> quit
500
Closing CLI connection
11/avr/2012 Posté dans Varnish | 0 commentaire Cela peux se faire avec uniquement wget et egrep mais cela ne cachera pas les image, javascript css et autre fichiers. Cette solution n’utilisera pas d’espace dique.
wget --quiet http://domain.ltd/sitemap.xml -O - | egrep -o "http://domain\.ltd[^<]+" | wget --spider -nv -i -
N’oubliez pas de remplacer domain.ltd par votre domain 
Pour tous crawler, vous pouvez utiliser le script ci-dessous, celui ci mettra en cache toutes les pages, image, css et js
#!/usr/bin/env sh
BIN_DEPS='wget awk grep cut'
# CHECKS
if [ "$1" = "" ]; then
echo "Usage : $0 domain.ltd"
exit 1
else
DOMAIN=$1
fi
for BIN in $BIN_DEPS; do
which $BIN 1>/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "Error: Required file could not be found: $BIN"
exit 1
fi
done
URLS=$(wget -q http://$DOMAIN/sitemap.xml -O - | awk -F'<loc>' '{print $2}' | awk -F '</loc>' '{ print $1 }' | grep -v ^$)
for URL in $URLS; do
PAGE=$(wget -q -O - $URL | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2 )
SRC=$(wget -q -O - $URL | grep -o -E 'src="([^"#]+)"' | cut -d'"' -f2 )
for LINK in $PAGE $SRC; do
if echo $LINK | grep $DOMAIN | grep -vi feed 1>/dev/null ; then
wget --domains=$DOMAIN -O/dev/null -nv $LINK
fi
done
done
6/avr/2012 Posté dans Nginx | 0 commentaire Lorsque Nginx est placé derrière un reverse proxy, celui ci avec une configuration de base logera l’ip des visiteur avec celle du reverse proxy et non avec l’ip des visiteurs.
Cela peut poser des problemes par exemple dans le cas ou vous utilisez Akismet comme antispam pour vos commentaires.
Pour cela, dans varnish ajouter apres
sub vcl_recv { la ligne
set req.http.X-Forwarded-For = client.ip;
puis dans la configuration Nginx, dans la configuration http, ajouter
set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For; 5/avr/2012 Posté dans Nginx | 0 commentaire Configuration de base pour le CMS WordPress
server {
listen 192.168.1.1:80 default_server;
server_name _;
- listen: Configuration pour le vhost par defaut (les acces a des server_name inconu par Nginx arriveront dans ce vhost)
- server_name: _ indique le vhost par defaut, mettez vos ou votre server_name si vous voulez pas faire un vhost par defaut.
root /var/www/domaine.ltd/www;
index index.php;
N’oublier pas de modifier le « root »
location = /favicon.ico { allow all; log_not_found off; access_log off; }
location = /robots.txt { allow all; log_not_found off; access_log off; }
On desactive les log et on ne log pas les not found pour ces deux fichiers
location ~ /\. { deny all; log_not_found off; access_log off; }
location ~ wp-config.php { deny all; log_not_found off; access_log off; }
bloque l’acces aux fichiers commencant par un point et au fichier de conf (non negociable !
)
location ~ ^/wp-content {
deny all;
location ~ .(xml|css|jpe?g|png|gif|js)$ {
allow all;
}
}
Autorise l’acces uniquement aux extensions correspondant a la regex dans l’integralitée du dossier wp-content, si vous voulez laisser vos psd et autre fichiers source, ils sont protegé.
location / {
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
Renvoie tous sur l’index, cela permet d’utiliser le format d’url de votre choix.
location ~ \.php$ {
fastcgi_pass php5;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_ignore_client_abort off;
}
cette partie permet d’executer le php, a adapter suivant votre configuration
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
}
Cela permet de mettre en caches les fichiers static.
}
3/avr/2012 Posté dans Software | 0 commentaire sender_dependent_default_transport_maps va permettre, en fonction de l’émetteur de l’email sur votre serveur de spécifier une IP précise.
echo "/@domain-src-1\.ltd$/ domain_src_1:" > /usr/local/etc/postfix/outgoingips.regexp
echo "/@domain-src-2\.ltd$/ domain_src_2:" >> /usr/local/etc/postfix/outgoingips.regexp
echo "/@domain-src-3\.ltd$/ domain_src_3:" >> /usr/local/etc/postfix/outgoingips.regexp
Création des routes, ajouter dans master.cf les « entrées » suivante
domain_src_1 unix - - n - - smtp
-o smtp_bind_address=192.168.0.1
-o smtp_helo_name=domain-src-1.ltd
-o syslog_name=postfix-domain_src_1
domain_src_2 unix - - n - - smtp
-o smtp_bind_address=192.168.0.2
-o smtp_helo_name=domain-src-2.ltd
-o syslog_name=postfix-domain_src_2
domain_src_3 unix - - n - - smtp
-o smtp_bind_address=192.168.0.3
-o smtp_helo_name=domain-src-3.ltd
-o syslog_name=postfix-domain_src_3
Puis ajouter dans main.cf :
sender_dependent_default_transport_maps = regexp:/usr/local/etc/postfix/outgoingips.regexp