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. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Chào anh em!

    Chúng ta thi thoảng gặp vấn đề về DMCA hay gì gì đó ( cái này sẽ nhiều anh em bị lắm).
    Do đó cần phải ẩn VPS, hay Dedicated Server chính để khi bị report thì ko die. Mình cũng đang chạy vài em cần bảo vệ khi bị report.
    Cách cấu hình cần 1 vps đứng trước, nếu con này bị xóa khi report thì không sao, server chính đăng sau vẫn ok, không mất mát dữ liệu.

    Trên VPS chính chúng ta giữ nguyên cấu hình (loại bỏ ssl trong file nginx domain nếu có, ví không cần thiết)

    VPS làm reverse nginx proxy cấu hình như sau:
    Code:
    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://ip-vpschinh:port;
          proxy_read_timeout  90;
    
          proxy_redirect      http://ip-vpschinh:port http://domain.com;
        }
      }
    
    # ip-vpschinh: thay là ip của VPS chính (đứng sau)
    # domain.com: tên miền của bạn.
    # Đây là cấu hình http, muốn dùng ssl thì dùng free của CF. Cau hinh ssl rieng can khai bao ssl va port 443

    Anh em không mở port riêng cho VPS chính thì để port là 80 hoặc xóa đi.
    Anh em có thể dùng ssl free CF trỏ về là ok.

    Trường hợp dùng ssl riêng thì cấu hình như sau:
    Code:
    server {
        listen 80;
        server_name domain.com;
        return 301 https://domain.com$request_uri;
    }
    
    server {
    
        listen 443 ssl;
        server_name  domain.com;
    
            # Khai bao ssl.
            ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
            ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
    
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
            ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    
    
            access_log /home/domain.com/logs/access.log;
            error_log /home/domain.com/logs/error.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;
    
          # Fix the It appears that your reverse proxy set up is broken error.
          proxy_pass          http://ip-vpschinh:port;
          proxy_read_timeout  90;
    
    
          proxy_redirect      http://ip-vpschinh:port https://domain.com;
        }
      }
    
    Cấu hình trên không ảnh hưởng đến cookie, session đăng nhập, chỉ có ip là ảnh hưởng, sẽ là ip của proxy.
    Cần sửa file cấu hình nginx của domain chính để hiện IP thực (chứ không phải ip của proxy):
    Code:
    location ~ \.php$ {
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    include /etc/nginx/fastcgi_params;
                    fastcgi_pass 127.0.0.1:9000;
                    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 /home/domain.com/public_html$fastcgi_script_name;
                    # show real ip.
                    fastcgi_param REMOTE_ADDR $http_x_real_ip;
            }
    
    Vậy là ok. Anh em cùng thảo luận vào chia sẻ. {big_smile}
    Anh em cần gì cứ thảo luận ở đây.
     
    Last edited: Jul 11, 2019
    remake2020, mebong, bleachu and 12 others like this.
  2. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Hehe
     
  3. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    Ý mình là cách của bác làm mất công cấu hình nhưng tác dụng thì không đc nhiều lắm. Chưa kể việc cấu hình này đối với người mới, không chuyên cntt còn dẫn đến lỗi server các kiểu. Chi bằng đi mua xừ vps offshore dùng cho yên tâm. Đỡ loằng ngoằng
    {big_smile}{big_smile}{big_smile}
     
  4. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Mình bị report liên tục mà ko bị sao cả. Có thể mình may mắn. vps offshore mình cũng dùng rồi. Nhưng được vài tháng thì nhà cung cấp dở chứng. Nên cũng chỉ làm proxy thôi. Vps offshore đắt và có vẻ đường truyền hơi chậm.
     
  5. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    Bác dùng thằng nào mà dở vậy. E đang dùng mấy tháng nay thấy ok lắm. Chuyển hết qua NCC này rồi. Chỉ có chính đạo mới để ở DO thôi
     
  6. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Bạn đang dùng vps offshore của ncc nào ổn. Cho mình xin cái tên nhé.
     
  7. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    veesp Thằng này nhé. E thấy gói 4GB ram 60GB ssd của nó còn rẻ hơn DO với vultr. 2 thằng kia giới hạn băng thông. Thằng này còn free băng thông. 1 ngày e nhận tầm 5-10 email DCMA mà không thấy vps báo mail gì. Không biết vài tháng nữa nó có dở chứng như bác nói không
     
  8. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Dùng veesp được. Chỉ là google bot nó hay lỗi và chậm. Năm trước dùng toàn bị a gồ báo lỗi máy chủ nên bỏ. Ko biết giờ có còn lỗi đó ko.
     
  9. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    GG webmaster của e không thấy báo lỗi gì. Chỉ là index hơi chậm. Thấy ae cũng kêu chậm nên đoán là tình hình chung nên cũng không suy nghĩ thêm {big_smile}{big_smile}{big_smile}
     
  10. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Nếu mà xài proxy server trung gian thế nầy, thì mục đích chính là để chống tụi nó biết dc ip thật của server. Nhưng mình nhớ là dùng lệnh trace có thể lần ra dc mà nhỉ.
     
  11. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    Cùng ý kiến với bác. Vẫn lần ra đc hết. E ko nghĩ nó có tác dụng tránh dcma
     
  12. money

    money Hương Chủ

    Ai trace giúp anh vài site được không?
     
  13. EDM

    EDM Sơ Nhập Giang Hồ

    Trace được ạ? Có bác nào viết một post mới hd trace được không? {adore}
     
  14. Phan Thị

    Phan Thị Bang Chúng

    Cụ demo cho ae mở mang đầu óc cái
     
  15. hoangvn92.it

    hoangvn92.it Sơ Nhập Giang Hồ

    cái này phải nói là để mấy đứa nó report về cloudflare thì nó không sao.
    chứ gủi thẳng vào ip thì vẫn chịu thôi.

    nhưng mà đa phần được mấy ng rảnh report vào ip =))
     
  16. Nai

    Nai MiddleMan Staff Member

    Sẵn tiện cho em hỏi vụ bản quyền, tự nhiên em up cái hình cái hình mấy đứa bạn ôm chai bia Heniken (gối ôm) lên website mà cũng bị bên bên cty Heniken report lên cloudflare nữa. Như vậy là sao mấy cụ, đó giờ chưa dính bản quyền kiểu này bao giờ.
     
  17. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Hồi trước đọc thì nó ghi dùng cái lệnh

    tracert domain.com

    Để tìm ra dc ip của server, có gì sai sai thì phải
     
  18. Nai

    Nai MiddleMan Staff Member

    Dễ như vậy thì nói làm gì, lệnh tracert là hiển thị đường đi của gói tin thôi à, gói tin sẽ đi qua những IP nào để đến đích thì nó sẽ hiển thị ra cho mình, chứ nó không mò được IP gốc đâu, trừ khi Admin gõ lệnh tracert IP_gốc
    Admin đôi lúc cũng ngây ngô ghê {brick}
     
  19. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Tracert không ra được ip gốc đâu, cơ bản mình không muốn tranh cãi gì cả, mọi người hiểu sẽ biết cách thôi, trừ khi bị lộ trước khi triển khai proxy, anh em nào lo lắng vẫn bị tìm ra vps chính đằng sau thì có thể dùng thêm loadbalancing. Lúc này là mutil vps đứng sau sẽ là server chính (die em nọ còn em kia, vps chứa database sẽ là đứng sau cùng. vps proxy die thì order e khác cấu hình lại là xong. Bảo vệ cần nhất là e chứa database thôi.

    Mô hình hơi tốn kém nhưng an toàn:
    Vps làm proxy - vps loadbalancing - vps chứa source - vps chứa database riêng.

    Cách triển khai thì tuỳ ý tưởng mỗi người nhá.
     
    Last edited: Aug 24, 2019
    Newbie88 and Vajimi like this.
  20. console

    console Bang Chúng

    Like. Cao siêu quá hêh thớt làm mấy lớp vậy thì giàu k lối thoát
     
    xmenvn2510 likes this.
Thread Status:
Not open for further replies.