Maison  >  Questions et réponses  >  le corps du texte

socket - Problèmes avec le proxy TCP Nginx

L'appareil utilise le port 1883 pour transférer vers le serveur backend via le proxy TCP/UDP de nginx.
Le serveur backend vérifie que l'adresse IP du socket de l'appareil est l'adresse IP du serveur proxy, et non l'adresse IP réelle de l'appareil.
Comment implémenter la transparence. proxy ? Laisser nginx proxy Où est l'adresse IP réelle de l'appareil connecté au serveur backend ?

Remarques :

  1. Vous ne pouvez pas obtenir votre propre adresse IP lorsque l'appareil est connecté, alors n'y pensez pas

  2. est un proxy TCP/UDP, pas http

阿神阿神2714 Il y a quelques jours625

répondre à tous(1)je répondrai

  • 巴扎黑

    巴扎黑2017-05-16 17:14:03

    Module Nginx Stream
    Le module ngx_stream_core_module est disponible depuis la version 1.9.0. Ce module n'est pas construit par défaut, il doit être activé avec le paramètre de configuration --with-stream.

    .

    Ce module n'est pas inclus dans la version par défaut. Vous devez ajouter une --with-streamconfiguration lors de l'installation de nginx.

    Exemple de programme

    worker_processes auto;
    
    error_log /var/log/nginx/error.log info;
    
    events {
        worker_connections  1024;
    }
    
    stream {
        upstream backend {
            hash $remote_addr consistent;
    
            server backend1.example.com:12345 weight=5;
            server 127.0.0.1:12345            max_fails=3 fail_timeout=30s;
            server unix:/tmp/backend3;
        }
    
        upstream dns {
           server 192.168.0.1:53535;
           server dns.example.com:53;
        }
    
        server {
            listen 12345;
            proxy_connect_timeout 1s;
            proxy_timeout 3s;
            proxy_pass backend;
        }
    
        server {
            listen 127.0.0.1:53 udp;
            proxy_responses 1;
            proxy_timeout 20s;
            proxy_pass dns;
        }
    
        server {
            listen [::1]:12345;
            proxy_pass unix:/tmp/stream.socket;
        }
    }

    répondre
    0
  • Annulerrépondre