<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://err404.numericore.com/fr/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Err404 - notes:formation_serveur_de_fichiers</title>
        <description></description>
        <link>https://err404.numericore.com/fr/</link>
        <lastBuildDate>Tue, 28 Apr 2026 15:33:27 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://err404.numericore.com/fr/_media/wiki/logo.png</url>
            <title>Err404</title>
            <link>https://err404.numericore.com/fr/</link>
        </image>
        <item>
            <title>dns</title>
            <link>https://err404.numericore.com/fr/notes/formation_serveur_de_fichiers/dns</link>
            <description>&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;tabs plugin_wrap&quot;&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://err404.numericore.com/fr//notes/formation_serveur_de_fichiers/dns&quot; class=&quot;urlextern&quot; title=&quot;https://err404.numericore.com/fr//notes/formation_serveur_de_fichiers/dns&quot;&gt;Français&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://err404.numericore.com/en//notes/file_server_training/dns&quot; class=&quot;urlextern&quot; title=&quot;https://err404.numericore.com/en//notes/file_server_training/dns&quot;&gt;English&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;p&gt;
un serveur dns authoritaire (dns SOA) va être utilisé pour déclarer que le serveur fait autorité sur certains noms de domaines.&lt;br /&gt;
ce qui permettra de définir facilement plein de sous-domaines sans avoir à changer les parametres chez le registrar.
&lt;/p&gt;

&lt;p&gt;
j&amp;#039;ai choisi d&amp;#039;utiliser &lt;a href=&quot;https://www.nlnetlabs.nl/projects/nsd/about/&quot; class=&quot;urlextern&quot; title=&quot;https://www.nlnetlabs.nl/projects/nsd/about/&quot;&gt;nsd&lt;/a&gt;, mais j&amp;#039;aurais pu utiliser &lt;a href=&quot;https://www.knot-dns.cz/&quot; class=&quot;urlextern&quot; title=&quot;https://www.knot-dns.cz/&quot;&gt;knot&lt;/a&gt;&lt;br /&gt;
il est préférable d&amp;#039;installer le serveur de nom de domaine dans une machine virtuelle plutôt que dans l&amp;#039;hyperviseur de façon à faciliter les sauvegardes.
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_button plugin_wrap&quot;&gt;
&lt;p&gt;
et dans mon cas j&amp;#039;ai choisi d&amp;#039;installer le serveur dns autoritaire dans la même machine qui fait &lt;a href=&quot;https://err404.numericore.com/fr/notes/formation_serveur_de_fichiers/rpsni&quot; class=&quot;wikilink1&quot; title=&quot;notes:formation_serveur_de_fichiers:rpsni&quot; data-wiki-id=&quot;notes:formation_serveur_de_fichiers:rpsni&quot;&gt;reverse proxy sni&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;nsd&quot;&gt;nsd&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
on installe le paquet &lt;code&gt;nsd&lt;/code&gt; disponible dans Debian&lt;br /&gt;
&lt;code&gt;aptitude install nsd&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
on va avoir quelques fichiers à éditer, puis éditer un fichier supplémentaire par zone dns
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;nsd&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;nsd&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;888-1080&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;nsdconf&quot;&gt;nsd.conf&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;code&gt;/etc/nsd/nsd.conf:&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code conf&quot;&gt;# NSD configuration file for Debian.
#
# See the nsd.conf(5) man page.
#
# See /usr/share/doc/nsd/examples/nsd.conf for a commented
# reference config file.
&amp;nbsp;
server:
        # log only to syslog.
        log-only-syslog: yes
&amp;nbsp;
ip-address: 2a02:8428:753:5002:97dc:9048:0:53
ip-address: 192.168.1.7
&amp;nbsp;
# use this number of cpu cores
server-count: 1
&amp;nbsp;
# We recommend leaving this empty, otherwise use &amp;quot;/var/db/nsd/nsd.db&amp;quot;
database: &amp;quot;&amp;quot;
&amp;nbsp;
#  the default file used for the nsd-control addzone and delzone commands
# zonelistfile: &amp;quot;/var/db/nsd/zone.list&amp;quot;
# The unprivileged user that will run NSD, can also be set to &amp;quot;&amp;quot; if
# user privilige protection is not needed
username: nsd
&amp;nbsp;
# Default file where all the log messages go
#logfile: &amp;quot;/var/log/nsd.log&amp;quot;
&amp;nbsp;
# Use this pid file instead of the platform specific default
pidfile: &amp;quot;/var/run/nsd.pid&amp;quot;
&amp;nbsp;
# don&#039;t answer VERSION.BIND and VERSION.SERVER CHAOS class queries
hide-version: yes
hide-identity: yes
&amp;nbsp;
&amp;nbsp;
# Enable if privilege &amp;quot;jail&amp;quot; is needed for unprivileged user. Note
# that other file paths may break when using chroot
# chroot: &amp;quot;/etc/nsd/&amp;quot;
# The default zone transfer file
# xfrdfile: &amp;quot;/var/db/nsd/xfrd.state&amp;quot;
# The default working directory before accessing zone files
# zonesdir: &amp;quot;/etc/nsd&amp;quot;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
# The following line includes additional configuration files from the
# /etc/nsd/nsd.conf.d directory.
&amp;nbsp;
include: &amp;quot;/etc/nsd/nsd.conf.d/*.conf&amp;quot;&lt;/pre&gt;

&lt;p&gt;
on ajoute un fichier de zone, dans mon cas j&amp;#039;ai une zone pour &lt;code&gt;err404.numericore.com&lt;/code&gt; et les sous-domaines comme &lt;code&gt;visio.err404.numericore.com&lt;/code&gt; et une autre zone pour &lt;code&gt;ikce.numericore.com&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;nsd.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;nsdconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1081-2718&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;zonesconf&quot;&gt;zones.conf&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
/etc/nsd/nsd.conf.d/zones.conf:
&lt;/p&gt;
&lt;pre class=&quot;code conf&quot;&gt;zone:
    name: ikce.numericore.com
    zonefile: /etc/nsd/nsd.conf.d/ikce.numericore.com.zone
&amp;nbsp;
zone:
    name: err404.numericore.com
    zonefile: /etc/nsd/nsd.conf.d/err404.numericore.com.zone&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;zones.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;zonesconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2719-2991&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;err404numericorecomzone&quot;&gt;err404.numericore.com.zone&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;span class=&quot;wrap_info &quot;&gt; Attention, il y a un piège qui m&amp;#039;a bloqué assez longtemps:&lt;/span&gt;&lt;br /&gt;
dans la ligne &lt;code&gt;@       IN      SOA    ns.err404.numericore.com. err404.numericore.com. ( &lt;/code&gt; le champs &lt;code&gt;err404.numericore.com.&lt;/code&gt; est en réalité une adresse email
&lt;/p&gt;

&lt;p&gt;
d&amp;#039;autre part il faut faire bien attention à ne pas oublier le point final après les noms de domaines
&lt;/p&gt;

&lt;p&gt;
j&amp;#039;utilise les ip publiques:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; en ipv4 je vais utiliser l&amp;#039;ip publique de la box et faire une redirection du port 53 vers la machine qui héberge mon service dns&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; en ipv6 je vais directement indiquer l&amp;#039;ipv6 publique de la machine qui héberge mon service dns&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
la ligne contenant Sérial est simplement un numéro de série qui doit être strictement croissant à chaque mise à jour du fichier, donc souvent on va utiliser une date du jour et incrémenter&lt;br /&gt;
/etc/nsd/nsd.conf.d/err404.numericore.com.zone:
&lt;/p&gt;
&lt;pre class=&quot;code conf&quot;&gt;$ORIGIN err404.numericore.com.
$TTL 7200
&amp;nbsp;
@       IN      SOA    ns.err404.numericore.com. err404.numericore.com. (
                                                2021042514 ; Serial
                                                7200       ; Refresh
                                                1800       ; Retry
                                                1209600    ; Expire
                                                86400 )    ; Minimum
&amp;nbsp;
; NAMESERVERS
&amp;nbsp;
@                   IN                NS                   ns.err404.numericore.com.
&amp;nbsp;
ns                  IN                A                    77.129.238.159
ns                  IN                AAAA                 2a02:8428:753:5002:97dc:9048:0:53
&amp;nbsp;
&amp;nbsp;
; A RECORDS
@                                   A          77.129.238.159
@                                   AAAA       2a02:8428:753:5002:fcb3:ff:fe8a:3b80
visio                               A          77.129.238.159
visio                               AAAA       2a02:8428:753:5002:fcb3:ff:fe8a:3b80&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;$ORIGIN err404.numericore.com.&lt;/code&gt; va être utilisé comme variable pour le reste du fichier&lt;br /&gt;
&lt;code&gt;@&lt;/code&gt; va être remplacé par la variable &lt;code&gt;$ORIGIN&lt;/code&gt;&lt;br /&gt;
donc on va définir des ip pour &lt;code&gt;err404.numericore.com&lt;/code&gt; et &lt;code&gt;visio.err404.numericore.com&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;err404.numericore.com.zone&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;err404numericorecomzone&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2992-5180&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit9&quot; id=&quot;la_box&quot;&gt;la box&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
et enfin sur la box il faut rediriger les ports 53 vers l&amp;#039;ip de la machine qui héberge le serveur dns –autoritaire– qui fait autorité
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;la box&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;la_box&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;5181-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 13 Jan 2026 08:20:09 +0000</pubDate>
        </item>
        <item>
            <title>rpsni</title>
            <link>https://err404.numericore.com/fr/notes/formation_serveur_de_fichiers/rpsni</link>
            <description>&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;tabs plugin_wrap&quot;&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://err404.numericore.com/fr//notes/formation_serveur_de_fichiers/rpsni&quot; class=&quot;urlextern&quot; title=&quot;https://err404.numericore.com/fr//notes/formation_serveur_de_fichiers/rpsni&quot;&gt;Français&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://err404.numericore.com/en//notes/file_server_training/rpsni&quot; class=&quot;urlextern&quot; title=&quot;https://err404.numericore.com/en//notes/file_server_training/rpsni&quot;&gt;English&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;p&gt;
On n&amp;#039;a besoin d&amp;#039;un reverse proxy &lt;strong&gt;que dans le cas ou on n&amp;#039;a pas d&amp;#039;ipv6&lt;/strong&gt;.&lt;br /&gt;
et comme tout le monde n&amp;#039;a pas encore ipv6 (il y a même des gens qui vont désactiver l&amp;#039;ipv6 sur leur machine…) on va mettre en place un reverse proxy:
&lt;/p&gt;

&lt;p&gt;
il suffit d&amp;#039;installer par exemple un serveur Haproxy, que ce soit dans l&amp;#039;hyperviseur ou une machine virtuelle.
&lt;/p&gt;

&lt;p&gt;
il est préférable d&amp;#039;installer le reverse proxy dans une machine virtuelle ou un  conteneur plutôt que dans l&amp;#039;hyperviseur de façon à faciliter les sauvegardes.
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_button plugin_wrap&quot;&gt;
&lt;p&gt;
et dans mon cas j&amp;#039;ai choisi d&amp;#039;installer le reverse proxy dans la même machine qui fait &lt;a href=&quot;https://err404.numericore.com/fr/notes/formation_serveur_de_fichiers/dns&quot; class=&quot;wikilink1&quot; title=&quot;notes:formation_serveur_de_fichiers:dns&quot; data-wiki-id=&quot;notes:formation_serveur_de_fichiers:dns&quot;&gt;serveur de nom de domaine faisant autorité&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;p&gt;
dans mon cas les machines virtuelles et les conteneurs ont de l&amp;#039;ipv6, donc les noms de domaines vont directement sur ces machines, pas besoin de &lt;em&gt;reverse proxy sni&lt;/em&gt; pour l&amp;#039;ipv6.&lt;br /&gt;
le problème c&amp;#039;est que je n&amp;#039;ai qu&amp;#039;&lt;strong&gt;une seule ipv4 publique&lt;/strong&gt; (la box de mon fournisseur d&amp;#039;accès à Internet) et que je suis obligé de partager cette unique ipv4 publique pour toutes mes machines virtuelles ou conteneurs.&lt;br /&gt;
c&amp;#039;est pour permettre cette cohabitation que j&amp;#039;installe un reverse proxy sni.
&lt;/p&gt;

&lt;p&gt;
avec l&amp;#039;ipv6, c&amp;#039;est simple: toutes les machines ont un accès direct à Internet et sont directement joignable depuis Internet, elles sont indépendantes et n&amp;#039;ont pas de problèmes de ports à partager donc pas de problèmes de traduction d&amp;#039;adresses.
&lt;/p&gt;
&lt;div id=&quot;plugin__gallery_6158&quot; class=&quot;plugin-gallery align-center&quot;&gt;&lt;div class=&quot;gallery-page&quot; id=&quot;gallery__6158_0&quot; style=&quot;grid-template-columns: repeat(auto-fill, minmax(300px, 1fr))&quot;&gt;&lt;figure class=&quot;gallery-image&quot; style=&quot;max-width: 300px; &quot;&gt;&lt;a href=&quot;https://err404.numericore.com/fr/_detail/notes/formation_serveur_de_fichiers/ipv4_vs_ipv6_fr_.svg?id=notes%3Aformation_serveur_de_fichiers%3Arpsni&quot; title=&quot;Ipv4 Vs Ipv6 Fr &quot; data-caption=&quot;&amp;lt;b&amp;gt;Ipv4 Vs Ipv6 Fr &amp;lt;/b&amp;gt;&quot; class=&quot;lightbox JSnocheck&quot; rel=&quot;lightbox[gal-6cdd6acc44704cfaef95f74ab317]&quot; data-url=&quot;/fr/_media/notes/formation_serveur_de_fichiers/ipv4_vs_ipv6_fr_.svg&quot;&gt;&lt;img width=&quot;600&quot; height=&quot;600&quot; src=&quot;/fr/_media/notes/formation_serveur_de_fichiers/ipv4_vs_ipv6_fr_.svg?w=600&amp;amp;h=600&amp;amp;tok=85cdd6&quot; alt=&quot;ipv4_vs_ipv6_fr_.svg&quot; loading=&quot;lazy&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;Reverse_proxy_sni&quot;&gt;Reverse proxy sni&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
on installe le paquet &lt;code&gt;haproxy&lt;/code&gt; disponible dans Debian &lt;code&gt;apt install haproxy&lt;/code&gt;&lt;br /&gt;
un seul fichier à éditer:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/etc/haproxy/haproxy.cfg&lt;/code&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code conf&quot;&gt;global
        log /dev/log    local0 info
        log /dev/log    local1 info
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon
&amp;nbsp;
&amp;nbsp;
        # Default SSL material locations
       ca-base /etc/ssl/certs
       crt-base /etc/ssl/private
&amp;nbsp;
        # See: https://ssl-config.mozilla.org/#server=haproxy&amp;amp;server-version=2.0.3&amp;amp;config=intermediate
        ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
        ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
        ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
&amp;nbsp;
defaults
        log     global
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http
&amp;nbsp;
&amp;nbsp;
############################
&amp;nbsp;
frontend http_in
        mode http
        option httplog
        bind [::]:80 v6only
        bind *:80
        option forwardfor
        http-request add-header X-Forwarded-For %[src]
        http-request set-header X-Forwarded-Proto https if { ssl_fc }
&amp;nbsp;
        acl host_err404 hdr(host) -i err404.numericore.com
        acl host_err404 hdr(host) -i visio.err404.numericore.com
&amp;nbsp;
        acl host_ikce hdr(host) -i ikce.numericore.com
&amp;nbsp;
&amp;nbsp;
        use_backend http_err404 if host_err404
        use_backend http_ikce if host_ikce
&amp;nbsp;
&amp;nbsp;
backend http_err404
        mode http
        option forwardfor
        balance roundrobin
        server server1 ct-err404:80
&amp;nbsp;
backend http_ikce
        mode http
        option forwardfor
        balance roundrobin
        server server1 ct-ikce:80
&amp;nbsp;
&amp;nbsp;
#######################
frontend tcp_https
        mode tcp
        option tcplog
        bind [::]:443 v6only
        bind *:443
        acl tls req.ssl_hello_type 1
        tcp-request inspect-delay 5s
        tcp-request content accept if tls
&amp;nbsp;
&amp;nbsp;
        acl host_err404 req.ssl_sni -i err404.numericore.com
        acl host_err404 req.ssl_sni -i visio.err404.numericore.com
&amp;nbsp;
        acl host_ikce req.ssl_sni -i ikce.numericore.com
&amp;nbsp;
&amp;nbsp;
        use_backend tcp_err404 if host_err404
        use_backend tcp_ikce if host_ikce
&amp;nbsp;
&amp;nbsp;
backend tcp_err404
  mode tcp
  option ssl-hello-chk
  balance roundrobin
  server err404 ct-err404:443 send-proxy check
&amp;nbsp;
backend tcp_ikce
  mode tcp
  option ssl-hello-chk
  balance roundrobin
  server ikce ct-ikce:443 send-proxy check
&amp;nbsp;
############### 
frontend port1935
  mode tcp
  option tcplog
  bind [::]:1935 v6only
  bind *:1935
  acl err404_1935 req.ssl_sni -i err404.numericore.com
&amp;nbsp;
&amp;nbsp;
  use_backend err404_1935 if err404_1935
&amp;nbsp;
&amp;nbsp;
backend err404_1935
  mode tcp
  balance roundrobin
  server err404 ct-err404:1935 send-proxy&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; bind [::]:80 v6only&lt;/code&gt; &lt;code&gt;bind *:80&lt;/code&gt; permet d&amp;#039;écouter en ipv4 ET en ipv6&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; j&amp;#039;ai rajouté l&amp;#039;exemple pour le port 1935&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; les sous-domaines doivent être ajoutés (ici on a visio.err404.numericore.com comme sous-domaine de err404.numericore.com)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;ct-err404&lt;/code&gt; et &lt;code&gt;ct-ikce&lt;/code&gt; sont les nom des conteneurs, qui seront résolu en ip par mon résolveur interne, vous pourrez indiquer directement les ip de vos conteneurs&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Reverse proxy sni&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;Reverse_proxy_sni&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1694-5616&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit6&quot; id=&quot;les_machines_virtuelles_conteneurs_ou_autre&quot;&gt;les machines (virtuelles, conteneurs ou autre)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
d&amp;#039;autre part il faudra modifier les fichiers nginx des machines concernées (dans mon cas c&amp;#039;est les machines ikce.numericore.com et err404.numericore.com)
&lt;/p&gt;

&lt;p&gt;
dans err404.numericore.com:
&lt;/p&gt;

&lt;p&gt;
on rajoute simplement `proxy_protocol` dans le segment `server` et uniquement pour le port 443
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; on ne touche pas à l&amp;#039;ipv6 vu que dans mon cas les machines ont de l&amp;#039;ipv6 public.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
voici un extrait du fichier `/etc/nginx/conf.d/err404.numericore.com.conf`:
&lt;/p&gt;
&lt;pre class=&quot;code conf&quot;&gt;server {
    listen 443 ssl http2 proxy_protocol;
    listen [::]:443 ssl http2;                            
    server_name err404.numericore.com;&lt;/pre&gt;

&lt;p&gt;
lorsque on modifie le fichier de conf nginx, Yunohost ne va pas être content et refusera de les mettre à jour car ils auront étés modifiés
&lt;/p&gt;

&lt;p&gt;
il faut faire pareil pour les autres machines virtuelles (ikce.numericore.com dans mon cas)
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;pour obtenir les ip réelles des clients en ipv4 (et pas seulement l&amp;#039;ip du reverse proxy):&lt;/strong&gt;&lt;br /&gt;
voici un extrait du fichier `/etc/nginx.conf` :
&lt;/p&gt;
&lt;pre class=&quot;code conf&quot;&gt;http {
    real_ip_header proxy_protocol;
    real_ip_recursive on;
    set_real_ip_from 192.168.1.20;&lt;/pre&gt;

&lt;p&gt;
vous remplacerez 192.168.1.20 par l&amp;#039;ip de votre reverse proxy sni
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;les machines (virtuelles, conteneurs ou autre)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;les_machines_virtuelles_conteneurs_ou_autre&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5617-6865&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit7&quot; id=&quot;la_box&quot;&gt;la box&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
sur la box il faut rediriger les ports 80 et 443  (et les autres ports que vous aller proxyfier) vers l&amp;#039;ip de la machine qui héberge le reverse proxy sni
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;la box&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;la_box&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;6866-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 13 Jan 2026 22:53:54 +0000</pubDate>
        </item>
    </channel>
</rss>
