Laravel Starter Kit
Nếu đang dùng Laravel Starter Kits, Inertia SSR được hỗ trợ thông qua một build command:Thêm entry point phía máy chủ
Để cấu hình SSR thủ công mà không dùng Laravel starter kit, trước tiên hãy tạo file entry point SSR trong project Laravel.app.js nhưng phù hợp để chạy ở chế độ SSR, chẳng hạn plugin hoặc custom mixin.
Clustering
Mặc định, SSR server chạy trên một thread duy nhất. Clustering khởi động nhiều Node server trên cùng một port, sau đó request được phân phối cho từng thread theo cơ chế round-robin. Bạn có thể bật clustering bằng cách truyền một đối số options thứ hai vàocreateServer.
Hydration phía client
Thiết lập Vite
Tiếp theo, cập nhật cấu hình Vite để build entry point SSR mới bằng cách thêm thuộc tínhssr vào cấu hình plugin Vite của Laravel trong file vite.config.js.
Cập nhật NPM script
Tiếp theo, cập nhật scriptbuild trong file package.json để build cả entry point SSR.
package.json
Chạy SSR server
Sau khi đã build cả bundle phía client và phía máy chủ, bạn có thể chạy Inertia SSR server dựa trên Node bằng command sau.--runtime để chỉ định runtime muốn sử dụng. Điều này cho phép chuyển từ runtime Node.js mặc định sang Bun.
Tắt SSR
Đôi khi bạn có thể muốn tắt server-side rendering cho một số trang hoặc route nhất định trong ứng dụng. Bạn có thể làm vậy bằng cách đặt giá trị cấu hìnhinertia.ssr.enabled thành false cho request hiện tại, thường trong service provider hoặc middleware.
Triển khai
Khi triển khai ứng dụng có SSR lên production, bạn cần build cả bundle phía client (app.js) và phía máy chủ (ssr.js), sau đó chạy SSR server như một background process, thường thông qua công cụ giám sát tiến trình như Supervisor.
inertia:stop-ssr. Công cụ giám sát tiến trình (như Supervisor) cần chịu trách nhiệm tự động khởi động lại SSR server sau khi nó dừng.
inertia:check-ssr để xác minh SSR server đang chạy. Điều này hữu ích sau khi deploy và rất phù hợp làm Docker health check để đảm bảo server phản hồi đúng như mong đợi.
inertia.ssr.ensure_bundle_exists thành false.