94 lines
3.9 KiB
Text
94 lines
3.9 KiB
Text
# RETIRER TOUS LES COMMENTAIRES, ET NE LAISSER QUE CE QUI EST UTILE
|
|
|
|
### Pour désactiver la réutilisation des connections http avec le navigateur
|
|
#KeepAlive Off
|
|
|
|
### Pour désactiver la réutilisation des connections http avec le serveur mandaté
|
|
#SetEnv proxy-nokeepalive 1
|
|
|
|
### Réécriture des URLS
|
|
#RewriteEngine On
|
|
#RewriteRule ^/$ /moncontexte/index.php [L,R]
|
|
|
|
# exemple de stratégie CSP si l'application n'en fournit pas
|
|
# Header set Content-Security-Policy "default-src 'self'; img-src 'self'; style-src 'self'; script-src 'self'; object-src 'none'"
|
|
|
|
### exemple pour fichier de log spécifique pour certains motifs d'url
|
|
#SetEnvIf Request_URI ^/motifatrouver(/|$) monenv
|
|
#ErrorLog ${APACHE_LOG_DIR}/$vhostFQDN-monenv-error.log env=monenv
|
|
#CustomLog ${APACHE_LOG_DIR}/$vhostFQDN-monenv-access.log combined env=monenv
|
|
|
|
|
|
### Debug des flux
|
|
# En cas de besoin de debug des flux chiffres, permet d'enregistrer les IO dans le error.log
|
|
# à combiner avec dumpio:trace7 dans loglevel ; attention à la quantité de logs, ne pas laisser actif au dela du debug
|
|
#DumpIOInput On
|
|
#DumpIOOutput On
|
|
|
|
|
|
### En cas de serveur mandaté en https, désactive les contrôles SSL du serveur mandaté si ce dernier utilise un certificat autosigné
|
|
#SSLProxyVerify none
|
|
#SSLProxyCheckPeerCN off
|
|
#SSLProxyCheckPeerName off
|
|
#SSLProxyCheckPeerExpire off
|
|
|
|
|
|
### Augmente les timeouts si le serveur mandaté a besoin de beaucoup de temps pour répondre
|
|
#Timeout 600
|
|
|
|
|
|
### Exemple de configuration de load balancer ; remplacer FQDN par le FQDN du virtualhost, et utiliser ça comme nom de balancer dans la macro de configuration
|
|
## stickysession: le nom du cookie utilisé pour stocker la route vers le backend
|
|
## retry : délai pendant lequel un serveur backend ne sera pas retenté s'il est considéré en défaut
|
|
## connectiontimeout : délai accordé pour créer la connexion vers le serveur backend avant de le considérer en défaut
|
|
## lbmethod : méthode d'équilibrage entre les balancermembers
|
|
## failonstatus : les codes d'erreur http qui peuvent être retournés par le backend et qu'on va considérer comme un défaut du backend
|
|
#Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
|
|
#<Proxy "balancer://FQDN">
|
|
# BalancerMember "http://fqdn1" route=1 retry=10 connectiontimeout=5
|
|
# BalancerMember "http://fqdn2" route=2 retry=10 connectiontimeout=5
|
|
# ProxySet lbmethod=byrequests failonstatus=500,503 stickysession=ROUTEID
|
|
#</Proxy>
|
|
|
|
|
|
### Pour utiliser des accesspolicy différentes par portion d'URL
|
|
#<locationmatch "\
|
|
# (?=^/motif1/)|\
|
|
# (?=^/motif2/)">
|
|
# Use InternalAccessPolicy
|
|
#</Locationmatch>
|
|
|
|
### Pour donner accès à des utilisateurs en plus de ceux acceptés par la policy
|
|
#<Location />
|
|
# Use LDAPUserAccessPolicy
|
|
# Require ldap-user login1
|
|
# Require ldap-user login2
|
|
# Require ldap-attribute "memberof=cn=xxxxx"
|
|
#</Location>
|
|
|
|
### Pour ne pas propager l'authentification vers le serveur mandaté
|
|
# RequestHeader unset Authorization
|
|
|
|
|
|
### Si une API du site mandaté utilise des codes d'erreur HTTP pour communiquer une information fonctionnelle à son client (beurk)
|
|
#<Location "/api/">
|
|
# ProxyErrorOverride off
|
|
#</Location>
|
|
|
|
|
|
### Si l'application utilise des URLs avec des slashes encodés
|
|
#AllowEncodedSlashes On
|
|
|
|
|
|
### Pour utiliser les websockets. Principe général : il faut détecter la nécessité d'activer les websockets.
|
|
## Soit parce que le client a déjà inséré dans ses entêtes des attributs en rapport :
|
|
#RewriteEngine On
|
|
#RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
|
|
#RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
|
|
#RewriteRule .* ws://%{SERVER_NAME}%{REQUEST_URI} [P,QSA,L]
|
|
## Soit parce que l'url demandée est d'une forme qui permet de détecter que le client s'adresse à une partie serveur développée avec des websockets
|
|
#<Location /websockify>
|
|
# ProxyPass ws://${URL_DEST}/websockify
|
|
# ProxyPassReverse ws://${VHOST_FQDN}/websockify
|
|
#</Location>
|
|
|