Upload file khi website run trên 2 server
Mình có 1 vấn đề như thế này, mong mọi người giúp đỡ ) Mình có 1 web (asp.net) chạy trên 2 server. Khi upload file lên thì nó lưu tại 1 trong 2 server, nên khi muốn show file ra thi thoảng gặp lỗi không show được file (not found) vì file ấy đang nằm ở server còn lại. Có ai gặp vấn đề này chưa ạ, help me !!!
3 CÂU TRẢ LỜI
Bạn nên store file lên một File storage service nào đó nhé. AWS S3 là một lựa chọn tốt
Nếu không có điều kiện sử dụng thì khi cần access vào ảnh thì cố định chỉ định vào server chứa ảnh thôi.
Như mô tả thì có lẽ bạn còn 1 con proxy để điều hướng vào 2 con server kia. Bạn có thể cấu hình lại con proxy để điều hướng dữ liệu theo kiểu Nếu server 1 trả về 404 thì lấy trên server 2
PS: Nếu dùng nginx làm proxy thì bạn có thể tham khảo try_files (http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files)
Cách cơ bản nhất để giải quyết là source ở 2 server đó phần xử lý hình ảnh phải xử lý lưu ở con server A hoặc Server B thôi. Để đảm bảo tính nhất quán và đồng bộ. Còn những cách khác thì như những comment khác chia sẻ rồi, nhưng sẽ không giải quyết tức thời cho bạn được và bạn cần thời gian và tiền của để thực hiện. Nhưng cũng nên tham khảo để khi thực hiện dự án thì phải suy nghĩ trước hướng phát triển phần quản lý hình ảnh.