Thảo luận cấu hinh reverse nginx proxy

Discussion in 'Thảo Luận Chung' started by xmenvn2510, Sep 28, 2018.

Thread Status:
Not open for further replies.
  1. tringoctran

    tringoctran Khách Qua Đường

    Giờ cách còn dùng được không bác, và làm thế nào để cấu hình cho vps chính là apache ạ
     
  2. sans_amour

    sans_amour Khách Qua Đường

    dùng haproxy b ơi :D nginx thì vẫn đang dùng đc
     
  3. mrhades

    mrhades Khách Qua Đường

    Chào cả nhà, mình đang tìm hiểu về cách cài đặt proxy trên 1 con server Core i5, ram 16gb. Mà gặp mấy vấn đề kiểu này, mong các bạn chuyên gia có thể chia sẻ thêm.

    1- Nếu dùng Haproxy và nhét nhiều backend lên đó thì hay bị tình trạng lỗi 504
    2- Nếu dùng Nginx để làm Reverse Proxy thì bị lỗi 502.
    Mình đã thiết lập tăng time out mà vẫn bị tình trạng đó, và như kiểu bị nghẽn ấy.
    #nginx Client timeout
    fastcgi_read_timeout 600;
    client_header_timeout 600;
    client_body_timeout 600;
    #nginx proxied server timeout
    proxy_read_timeout 600s;
    3- Mình có tìm hiểu thêm thì có Nginx Proxy Manager thì cũng kiểu bị tương tự quá tải như vậy.
    Traffic thì chỉ loanh quanh 30-40k/ngày
    Cảm ơn các bác.
     
  4. Dark

    Dark Tân Thủ Thôn

  5. Newbie88

    Newbie88 Tân Thủ Thôn

    Em cũng gặp vấn đề tương tự, cho em hóng với ạ
    --- Double Post Merged, Sep 11, 2022, Original Post Date: Sep 11, 2022 ---
    Có thể nguyên nhân là do cái proxy_redirect kia, e cũng chưa biết sửa như nào
     
  6. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Không có dòng đó ko không chạy đâu e. Đừng nói liều nếu không biết.
    Lỗi 502 và 504 là hầu hết thuộc về backend.
    Anh em monitor là biết cách khắc phục, còn không có đáp áp cụ thể.
    Đập nhiều tiền vào là hết.
     
  7. mrhades

    mrhades Khách Qua Đường

    Bác ơi, bác có biết cách chèn 1 pixel png vào file hls thấy mấy a e fake cache google image với cloudflare. Tìm hoài trên mạng không thấy :(
     
  8. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Sai chủ đề. Vui lòng tạo topic mới để a e biết trả lời.
     
  9. Dark

    Dark Tân Thủ Thôn

    inbox nhé
     
  10. lakazai

    lakazai Tân Thủ Thôn

    con proxy này mình muốn cân bằng tải qua nhiều server ip được không nhỉ các pro
     
  11. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Có e nhé. Từ khoá tìm kiếm: nginx load balancing
     
  12. OverL0rd

    OverL0rd Khách Qua Đường

    Code:
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server 192.0.0.1 backup;
    }
    server {
        listen 80;
        server_name domain.com ;
        access_log            /var/log/nginx/access.log;
    
        location / {
    
          proxy_set_header        Host $host;
          proxy_set_header        X-Real-IP $remote_addr;
          proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header        X-Forwarded-Proto $scheme;
    
          proxy_pass          http://backend;
          proxy_read_timeout  90;
    
          proxy_redirect      http://backend http://domain.com;
        }
      }
    
    như này chuẩn chưa pro :D
     
  13. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Về cơ bản thì đúng, nhưng thiếu chưa kiểm tra backend phía sau có die hay không, chưa cấu hình rõ cơ chế này cân bằng, bằng phương pháp nào (roundbin hay lastcon). Nếu die 1 backend bất kỳ thì phải chuyển user qua backend sống còn lại. Ngoài ra nếu trang web sử dụng đăng nhập thì chỉ để load 1 back end duy nhất hoặc phải đặt cookie để xác định đã login trên tất cả các backend.
    Tạm thời thế nhá.
     
    lakazai and Tạ hơi nặng like this.
  14. lakazai

    lakazai Tân Thủ Thôn

    cảm ơn bác góp ý, các chỗ khác em hiểu riêng chỗ này thì chưa biết xử lý sao:
    - `nhưng thiếu chưa kiểm tra backend phía sau có die hay không`. check server backend có die để tự động nhảy sang server khác kiểu gì bác nhỉ, em tưởng cái này mặc định của nginx, server die nó đánh dấu flag rồi tự động nhảy sang server khác.
    - `chưa cấu hình rõ cơ chế này cân bằng` cơ chế cân bằng là sao bác nhỉ.
    bác có thể cho 1 ví dụ có đầy đủ các feature rồi em tự mò được không. thanks bác.
     
  15. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Đây em.
    upstream backend {
    server backend1.example.com;
    server backend2.example.com max_fails=3 fail_timeout=30s;
    }

    Chi tiết xem tài liệu nginx tại đây.
    https://docs.nginx.com/nginx/admin-guide/load-balancer/http-health-check/

    Cần tìm hiểu nginx thì cứ vào trang docs.nginx. com nha
    --- Double Post Merged, Nov 9, 2022, Original Post Date: Nov 8, 2022 ---
    A e lên tạo thớt mới về thảo luận cân bằng tải với nginx để tránh người đọc sau bị rối. Và khó theo dõi.
     
    OverL0rd and noenmo like this.
  16. lakazai

    lakazai Tân Thủ Thôn

    thank bác xmen, còn một vấn đề nữa em còn đang thắc mắc, dùng veesp làm proxy cơ mà bw tối đa là 200Mbps, trong trường hợp muốn tăng thì hiện tại em đang có vài phương án như sau:
    - 1: kiếm nhà cung cấp khác
    - 2: mua nhiều vps rồi random cdn1.domain.com, cdn2.domain.com cơ mà mỗi khi thêm 1 domain thì lại phải add thêm vào tất cả các vps proxy
    - 3: mua dedi của veesp
    theo bác nên dùng cách nào
     
  17. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Lập thớt mới đi. Rồi a sẽ trả lời.
     
    lakazai likes this.
  18. bleachu

    bleachu Khách Qua Đường

    Các a xem giúp em xem sai ở đâu với ạ, cài xong mà check nó vẫn ra ip chính. {beat_brick}
    VPS e ubuntu đều cài với script larvps.

    VPS chính:
    Code:
    fastcgi_cache_path /home/abcdomaincom/abc.domain.com/cache levels=1:2 keys_zone=abc.domain.com:300m max_size=2g inactive=60m;
    
    
    server {
        listen 80;
        server_name abc.domain.com;
        charset utf-8;
    
        root /home/abcdomaincom/abc.domain.com/public_html/;
        index index.php index.html index.htm;
    
        include /etc/nginx/site/abc.domain.com/*.conf;
        include /etc/nginx/server/*.conf;
        include /home/abcdomaincom/abc.domain.com/public_html/*.conf;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    include /etc/nginx/fastcgi_params;
                    fastcgi_pass unix:/var/run/php7.4-fpm.abcdomaincom.sock;
                    fastcgi_index index.php;
                    fastcgi_connect_timeout 300;
                    fastcgi_send_timeout 300;
                    fastcgi_read_timeout 300;
                    fastcgi_buffer_size 32k;
                    fastcgi_buffers 8 16k;
                    fastcgi_busy_buffers_size 32k;
                    fastcgi_temp_file_write_size 32k;
                    fastcgi_intercept_errors on;
                    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                    # show real ip.
                    fastcgi_param REMOTE_ADDR $http_x_real_ip;
            }
    
        #access_log off;
        #access_log /home/abcdomaincom/abc.domain.com/logs/access.log;
        #error_log off;
        error_log /home/abcdomaincom/abc.domain.com/logs/error.log;
    }
    
    VPS reproxy:
    Code:
    fastcgi_cache_path /home/abcdomaincom/abc.domain.com/cache levels=1:2 keys_zone=abc.domain.com:300m max_size=2g inactive=60m;
    
    
    server {
        listen 80;
        server_name abc.domain.com;
        charset utf-8;
    
        root /home/abcdomaincom/abc.domain.com/public_html/;
        index index.php index.html index.htm;
    
        include /etc/nginx/site/abc.domain.com/*.conf;
        include /etc/nginx/server/*.conf;
        include /home/abcdomaincom/abc.domain.com/public_html/*.conf;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
            proxy_set_header        Host $host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header        X-Forwarded-Proto $scheme;
    
    # Fix the It appears that your reverse proxy set up is broken error.
            proxy_pass http://ipchinh:80;
            proxy_read_timeout 90;
            proxy_redirect http://ipchinh:80 http://abc.domain.com;
        }
        #access_log off;
        #access_log /home/abcdomaincom/abc.domain.com/logs/access.log;
        #error_log off;
        error_log /home/abcdomaincom/abc.domain.com/logs/error.log;
    }
    
    Do cài đặt chưa thành công nên e cũng chưa cài ssl luôn, sợ cài vào nó càng rối {beat_brick}
     
  19. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    sao vps proxy mà lại có cái này. Hướng dẫn a có để đâu.
    root /home/abcdomaincom/abc.domain.com/public_html/;
    index index.php index.html index.htm;

    Không làm dc thì thuê. Mất tiền mới nhớ dc em nhé.
     
    bleachu likes this.
  20. bleachu

    bleachu Khách Qua Đường

    {beat_plaster} vâng a, em làm được rồi a ah, em cảm ơn!
     
Thread Status:
Not open for further replies.