Redirection http vers https derrière un reverse proxy
Pour que cela fonctionne, le reverse proxy doit définir dans le header X-Forwarded-Proto si la requête était en http ou https
La règle de réécriture apache pour forcer l’https :
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule / https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Ou au contraire si l’on veut forcer en http :
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !http
RewriteRule / http://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Article complémentaire : Offloading SSL avec Nginx
Calculé la mémoire consommé par apache
La commande suivante va vous calculer la totalités de la mémoire utilisé par Apache ainsi que la taille de vos processus Apache.
La commande se base sur PS, les configurations d’apache et php ne sont pas lu.
Si votre processus apache se nome httpd, vous devez adaptez la commande en remplaçant apache2 par httpd 🙂
ps -ylC apache2 | awk '{x += $8;y += 1} END {print "Apache Memory Usage (MB): "x/1024; print "Average Process Size (MB): "x/((y-1)*1024)}
Mise en place de Monit
Monit a pour fonction de “surveiller” service et/ou les ressources système et d’exécuter une ou plusieurs actions en fonction de condition. Par exemple, il peut redémarrer Nginx si celui ci ne répond plus.
[Lire]Installer son FAMP (FreeBSD Apache MySQL PHP)
Un “FAMP” est une plateforme Apache/PHP/MySQL installé sur une FreeBSD 😉 et oui, ce n’est pas un L_inux_AMP !
Apache
cd /usr/ports/www/apache22/
make config install distclean
echo 'apache2_enable="YES"' >> /etc/rc.conf
echo 'apache2ssl_enable="YES"' >> /etc/rc.conf
echo 'accf_http_ready="YES"' >> /etc/rc.conf && kldload accf_http
PHP
cd /usr/ports/lang/php5
make config install distclean
cd /usr/ports/lang/php5-extensions
make config install distclean
MySQL
cd /usr/ports/databases/mysql51-server
make install WITH_OPENSSL=yes
make distclean
echo 'mysql_enable="YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/mysql-server start
/usr/local/bin/mysql_secure_installation
Dynamique Vhost
Exemple de configuration du module Apache mod_vhost_alias :
Options FollowSymLinks
AllowOverride all
Allow from all
UseCanonicalName Off
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog /var/log/apache2/access.vhosts.log vcommon
VirtualDocumentRoot /var/www/%0/www
VirtualScriptAlias /var/www/%0/cgi-bin
Documentation : http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html
Compiler Apache2 et PHP5
Les dépendances
Paquet dev installé pour satisfaire les dépendances :
libstdc++-devel
zlib-devel
e2fsprogs-devel
libpng-devel
cyrus-sasl
db4-devel
httpd-devel
glibc-devel
keyutils-libs
libselinux-devel
libidn-devel
libxml2-devel
ncurses-devel
krb5-devel
openssl-devel
curl-devel
apr-devel
apr-util
libsepol-devel
freetype-devel
libjpeg-devel
openldap-devel
expat-devel
Compiler
Apache
Compiler et installer Apache
./configure -prefix=/usr/local/httpd \
--enable-so \
--enable-suexec \
--enable-rewrite=static \
--enable-proxy=static \
--enable-ssl=static \
--enable-headers=static \
--enable-deflate=static \
--enable-status=static && make && make install
PHP
Compiler et installer PHP
./configure -with-apxs2=/usr/local/httpd/bin/apxs \
--disable-short-tags \
--enable-mysql \
--enable-memory-limit \
--enable-calendar \
--enable-magic-quotes \
--with-openssl \
--with-libxml-dir \
--with-xmlrpc \
--with-zlib \
--enable-calendar \
--with-curl \
--enable-ftp \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv \
--with-gettext \
--with-ldap \
--enable-mbstring \
--enable-zip \
--with-pear \
--enable-bcmath \
--enable-sigchild \
--enable-gd-native-ttf \
--enable-pcntl && make && sudo make install
Problème de semaphores lorsqu'Apache se lance
Modifier des paramètres php dans un .htaccess
Dans votre fichier .htaccess
<FilesMatch script.php>
php_value max_execution_time "600"
php_value upload_max_filesize "100M"
</FilesMatch>
- max_execution_time : Pour modifier le temps d’exécution maximum.
- upload_max_filesize : Pour modifier la taille maximum.
Masquer la version d'apache
Dans la configuration, passer les paramètres suivant :
ServerTokens Prod ServerSignature Off