ansible-role-reverse_proxy/files/vhosts.d.template/1_vhost_additional.conf.exemple

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>