Je ne parviens pas à faire en sorte que nginx équilibre les connexions internes avec ip_hash activé. J'ai besoin de sessions collantes car j'utilise Meteor en backend avec des sockets mais toutes les requêtes frappent toujours le même backend.
Le fichier journal d'accès nginx montre les adresses IP suivantes:
192.168.0.20 - - [xx/xxx/2017:xx:xx:xx +xxxx] "GET /favicon.ico HTTP/1.1" 404 5 "http://xxxx.lokal/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
192.168.0.11 - - [xx/xxx/2017:xx:xx:xx +xxxx] "GET /sockjs/602/dpkl6lfe/websocket HTTP/1.1" 101 55045 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
192.168.0.208 - - [xx/xxx/2017:xx:xx:xx +xxxx] "GET /sockjs/031/cx1kml79/websocket HTTP/1.1" 101 1146677 "-" "Mozilla/5.0 (iPad; CPU OS 10_2_1 like Mac OS X) AppleWebKit/602.4.6 (KHTML, like Gecko) Version/10.0 Mobile/14D27 Safari/602.1"
Est-ce parce qu'elles proviennent toutes du même sous-réseau 192.168.0.*? Si c'est le cas, comment puis-je modifier ce comportement?
Voici mon fichier de configuration:
utilisateur www;
processus_de_travail 4;
journal_erreurs /var/log/nginx/error.log;
evenements {
connexions_du_travailleur 1024;
}
http {
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
amont demo {
ip_hash;
serveur 127.0.0.1:5000;
serveur 127.0.0.1:5001;
}
inclure types_mimes;
type_par_defaut application/octet-stream;
journal_acces /var/log/nginx/access.log;
protocoles_ssl TLSv1 TLSv1.1 TLSv1.2; # Abandon de SSLv3, ref : POODLE
ciphers_preferred_server_ssl activé;
nopush_tcp activé;
nodelay_tcp activé;
delai_maintien 65;
taille_max_hachage_types 2048;
gzip activé;
gzip_desactiver "msie6";
jetons_serveur_nginx desactives; # pour la sécurité par obscurcissement : ne plus afficher la version de nginx
serveur {
ecouter 80;
nom_serveur xxxx.lokal;
emplacement / {
proxy_pass http://demo;
redirection_proxy off;
definir_en_tete_proxy Hote $host;
definir_en_tete_proxy X-Real-IP $remote_addr;
definir_en_tete_proxy X-Forwarded-For $proxy_add_x_forwarded_for;
definir_en_tete_proxy X-Forwarded-Proto $scheme;
version_http_proxy 1.1;
definir_en_tete_proxy Upgrade $http_upgrade; # permettre les websockets
definir_en_tete_proxy Connection "upgrade";
mise_en_memoire_proxy off;
delai_connexion_proxy 43200000;
delai_lecture_proxy 43200000;
delai_envoi_proxy 43200000;
si ($uri != '/') {
expire 30d;
}
}
}