Score:0

หนึ่งในสองโหนดที่สมดุลบน nginx เปลี่ยนเส้นทางไปยังหน้าต้อนรับของ nginx โดยใช้ haproxy balancer

ธง cn

ฉันมีปัญหา ฉันมีเซิร์ฟเวอร์ที่ใช้งานจริง 2 เครื่องพร้อม NGINX ที่ใช้งานได้บน 2 โดเมน การผลิตแอป 1.example.com และ การผลิตแอป 2.example.com แต่เมื่อฉันเพิ่มลงใน haproxy balancer และใช้เพียงอันแรกหรืออันที่สองอันที่สองก็ใช้งานได้ แต่อันแรกส่งคืนหน้าต้อนรับ nginx

การกำหนดค่า Nginx เหมือนกันทั้งสองอย่าง ต่างกันแค่ใน ชื่อเซิร์ฟเวอร์. ฉันไม่สามารถเข้าใจได้ว่าปัญหาอยู่ที่ใด

นี่คือการกำหนดค่า haproxy ของฉัน:

ทั่วโลก
        แม็กซ์คอน 500000
    บันทึก /dev/log local0.log
    บันทึก /dev/log local1 ประกาศ
    chroot /var/lib/haproxy
    ซ็อกเก็ตสถิติ /run/haproxy/admin.sock โหมด 660 ระดับผู้ดูแลระบบ expose-fd ผู้ฟัง
    หมดเวลาสถิติ 30 วินาที
    ผู้ใช้แฮพร็อกซี
    กลุ่ม haproxy
    ภูต

    # ตำแหน่งวัสดุ SSL เริ่มต้น
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # การเข้ารหัสเริ่มต้นเพื่อใช้กับซ็อกเก็ตการฟังที่เปิดใช้งาน SSL
    # สำหรับข้อมูลเพิ่มเติม โปรดดูที่ ciphers(1SSL) รายการนี้มาจาก:
    # https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
    # สามารถรับรายการทางเลือกพร้อมคำสั่งเพิ่มเติมได้จาก
    # https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
    ssl-default-bind-options ไม่มี sslv3

ค่าเริ่มต้น
    เข้าสู่ระบบทั่วโลก
    โหมด http
    ตัวเลือก httplog
    ตัวเลือก dontlognull
        ตัวเลือกไปข้างหน้าสำหรับ
        ตัวเลือก http-ปิดเซิร์ฟเวอร์
        หมดเวลาเชื่อมต่อ 10 วินาที
        ไคลเอ็นต์หมดเวลา 30 วินาที
        เซิร์ฟเวอร์หมดเวลา 120 วินาที
    ไฟล์ข้อผิดพลาด 400 /etc/haproxy/errors/400.http
    ไฟล์ข้อผิดพลาด 403 /etc/haproxy/errors/403.http
    ไฟล์ข้อผิดพลาด 408 /etc/haproxy/errors/408.http
    ไฟล์ข้อผิดพลาด 500 /etc/haproxy/errors/500.http
    ไฟล์ข้อผิดพลาด 502 /etc/haproxy/errors/502.http
    ไฟล์ข้อผิดพลาด 503 /etc/haproxy/errors/503.http
    ไฟล์ข้อผิดพลาด 504 /etc/haproxy/errors/504.http

ส่วนหน้า http_front
   ผูก *:80
   สถิติ uri /haproxy?stats
   default_backend http_back

แบ็กเอนด์ http_back
   แหล่งสมดุล
   คุกกี้ SERVERUSED แทรก nocache ทางอ้อม
   โหมด http
   http-request set-header X-Client-IP %[src]
   ตัวเลือก httpchk HEAD / HTTP/1.0
   เซิร์ฟเวอร์ production-app1.example.com production-app1.example.com:80 ตรวจสอบ ตก 2 เพิ่มขึ้น 2
   เซิร์ฟเวอร์ production-app2.example.com production-app2.example.com:80 ตรวจสอบ ตก 2 เพิ่มขึ้น 2

นี่คือ nginx conf ใน 1 แอป (ไม่ทำงาน)

เจ้าภาพ:

ต้นน้ำ app_production {
    # เส้นทางไปยังไฟล์ Puma SOCK ตามที่กำหนดไว้ก่อนหน้านี้
    ยูนิกซ์เซิร์ฟเวอร์:/var/www/production/app/shared/tmp/sockets/puma.sock fail_timeout=0;
}

เซิร์ฟเวอร์ {
    server_name การผลิต app1.example.com;

    รูท /var/www/production/app/shared/public;

    try_files $uri/index.html $uri @app;

    ตำแหน่ง @app {
        proxy_pass http://app_production;
        proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
        proxy_set_header โฮสต์ $http_host;
        ปิด proxy_redirect;
    }

    #บันทึก
    #

    access_log /var/www/log/production/app/access.log;
    error_log /var/www/log/production/app/error.log;

    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    #keepalive_timeout 10;

    ฟัง 80;
}

และการกำหนดค่า nginx ส่วนกลาง

# การกำหนดค่าเซิร์ฟเวอร์ที่ใช้งานจริง nginx
ผู้ใช้ปรับใช้;
ผู้ปฏิบัติงาน_กระบวนการ 2; # ประสิทธิภาพที่ดีขึ้นด้วยยอด IO
worker_rlimit_nofile 65535;

error_log /var/log/nginx/error.log เตือน;
pid /var/run/nginx.pid;


เหตุการณ์
{
    worker_connections 4096;
}

http
{
    รวม /etc/nginx/mime.types;
    แอปพลิเคชัน default_type/octet-stream;

    ## การปรับแต่ง HTTP2
    http2_max_concurrent_pushes 512;
    http2_max_concurrent_streams 512;
    http2_chunk_size 16k;
    http2_body_preread_size 256k;
    connection_pool_size 5600;
    #keepalive ต้องสิ่งนี้
    proxy_http_version 1.1;
    การเชื่อมต่อ proxy_set_header "";

    ส่งไฟล์บน;
    tcp_nopush บน;
    tcp_nodelay บน;
    keepalive_timeout 360;
    Keepalive_requests 10,000;
    types_hash_max_size 2048;
    server_names_hash_bucket_size 128;
    large_client_header_buffers 8 5600;

    # หมดเวลาพร็อกซี
    proxy_connect_timeout 120 วินาที;
    proxy_send_timeout 300 วินาที;
    proxy_read_timeout 300 วินาที;
    send_timeout 440 วินาที;

    # บัฟเฟอร์และแคช
    proxy_cache_path /tmp/nginx-cache keys_zone=nginx-cache:10m loader_threshold=300 loader_files=200 max_size=200m;
    proxy_cache nginx-cache;
    proxy_buffers 40 16k;
    proxy_buffer_size 512k;
    proxy_busy_buffers_size 512k;
    proxy_cache_valid 200 302 10m;
    proxy_cache_valid 404 1m;

    # การตั้งค่า SSL (จะถูกเพิ่ม)

    log_format main '$remote_addr - $remote_user [$time_local] "$request"'
    '$สถานะ $body_bytes_sent "$http_referer"'
    '"$http_user_agent" "$http_x_forwarded_for"'
    'request_time=$request_time'
    'upstream_response_time=$upstream_response_time'
    'upstream_connect_time=$upstream_connect_time'
    'upstream_header_time=$upstream_header_time';

    access_log /var/log/nginx/access.log บัฟเฟอร์หลัก = 2048k flush=120;

    รวม /etc/nginx/conf.d/*.conf;
    รวม /etc/nginx/sites-enabled/*;
}

อันที่สองมีการกำหนดค่าเหมือนกัน แต่ใช้งานได้อย่างมีเสน่ห์

ขอบคุณที่ช่วยเหลือ.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา