Programujte a prodávejte 6500 uživatelům systému Webreal vlastní funkce s využitím API
Zobrazují se odpovědi 1 až 6 z 6

Vhodne nastavenie nginx proxiny

  1. Ahojte, mam proxy zalozene na nginxe a prakticky mi ide iba o to aby sa naroutovali poziadavky na backendy podla nakonfigurovanych pravidiel.

    Toto mam zmaknute, ale chcel by som aby tato proxina nerobila absolutne ziadne zasahy do komunikacie. Cize aby neboli aplikovane obmedzenia na velkost poziadavky, pocet klientov, timeout a podobne veci. Skratka tato proxina ma sluzit fakt iba na smerovanie poziadavkov a nic ine. Akekolvek nastavenia ohladom requestov si riesi kazda backendova sluzba sama.

    Tak by ma zuajimalo ake nastavenia by mali byt v konfigu pre takyto nginx setup?

    Aktualne mam toto:
    Kód:
    user  nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log warn;
    pid /var/run/nginx.pid;
    
    events {
        multi_accept on;
        worker_connections  1024;
    }
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log /var/log/nginx/access.log main;
        keepalive_timeout 65;
        server_tokens off;
        if_modified_since before;
        client_max_body_size 0;
    
        tcp_nodelay off;
        tcp_nopush on;
        sendfile on;
        keepalive_requests 100;
        ssl_session_cache shared:TLSSL:16m;
    
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Host $host;
    
        proxy_hide_header Server;
        proxy_hide_header X-Powered-By;
    
    
        proxy_http_version 1.1;
        proxy_set_header Connection '';
    
        upstream foo {
            server foo-service.local;
        }
    
        server {
            listen 80 default_server;
            server_name _;
    
            location / {
                return 301 https://$host$request_uri;
            }
        }
    
        include /ingress/*.conf;
    
        server {
            listen 443;
            server_name _;
    
            location / {
                return 444;
            }
        }
    }

  2. Co se právě děje na Webtrhu?
  3. za prvé to není dobrý nápad, vždy musí být na každé službě nějaké omezení, ať už fyzické ve velikosti dostupné operační paměti, tak i v rámci kompatibility a specifikací (velikost dat), stejně tak z hlediska bezpečnosti, proxy nemůže neomezeně dlouho čekat na další pakety atd. Ty potřebuješ, aby nginx jel nad http protokolem, tudíž tam už z podstaty své implementace http dá určitá omezení a bude docházet k modifikaci třeba hlaviček.

    Proč to tak chceš a proč tam vůbec nginx je? Třeba je lepší řešení, rozhodně na to jdeš špatně.

    U projektů, kde je potřeba, aby backend měl určitý vliv na LB proxy, se definuje pro každý backend vlastní nastavení, chytřejší systémy umí z backendu převzít určitou konfiguraci a tu reprodukovat do nginx konfigu a aplikovat, to už je ale tenký led.

    Nastavení nginxu je nutné dělat podle výkonu serveru, na kterém běží, characteru služeb a množství požadavků a jejich rozložení v čase, neexistuje univerzální nastavení. Lépe popiš co chceš dělat a poradím ty, takhle naslepo to nelze.

  4. A neřešilo by tento problém lépe haproxy, než nginx?

  5. haproxy a nginx je v tomhle srovnatelná a stejně omezená, haproxy ale umí pouze tcp, nginx je schopnější.

  6. A už jsi viděl, že by HTTP/HTTPS protokol tekl v normálním stavu po UDP?

  7. mno viděl :), namátkou XMPP, Gnutella, jedno rozšíření u UPnP používá UDP jako transportní protokol pro http, stejně tak jsem použití viděl pokud je tcp (či jiný realibility tunel), tak na http se poté používá již jen udp.

    Dokonce udp/80 a udp/443 je ianou vyhrazený pro http :) https://www.iana.org/assignments/ser....xhtml?&page=2

    To ale nic nemění na tom, že v tomhle ohedu je jedno jestli použije haproxy nebo nginx, omezení tam budou stejně a stejně je nutné je řešit.

Hostujeme u Server powered by TELE3