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

 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ẻ. Văn vẻ hơi kém. Anh em thông cảm.

Nhận xét

Bài đăng phổ biến từ blog này

Thảo luận và chia sẻ cách tạo Cache, NGINX Caching, Reverse Proxy with Caching

Thảo luận và chia sẻ cách ignore DMCA