Publish trang web đơn giản với ngrok
Bạn đã từng gặp trường hợp trong khi phát triển trang web, muốn publish với bên ngoài nhưng chỉ có local PC, cần có SSL để liên kết với hệ thống khác nhưng không phải do vấn đề còn đang quyết định kết cấu mà vì muốn cắt giảm chi phí nên không thể thực hiện?
Trong trường hợp như vậy có vẻ chúng ta có thể lựa chọn sử dụng ngrok nên tôi đã thử điều tra.
ngrok là gì?
Nếu từ client PC mà gửi yêu cầu server ngork đến local PC thông qua SSH Tunnel thì chúng ta có thể trả dữ liệu về client.
Nói đơn giản là chúng ta có thể publish dịch vụ web chỉ với một chiếc local PC đang được sử dụng để lập trình.
Tuy rằng với cách này thì URL request của client sẽ là domain của server ngork, nhưng chúng ta vẫn có thể thao tác trên đó một cách bình thường.
Trình tự publish trang web
Deploy website lên môi trường local
Môi trường mà tôi đã dùng để kiểm chứng được xây dựng bằng node.js trên hệ điều hành Linux. (Có thể sử dụng trên Mac và Windows cũng được.)
Đầu tiên, trên hệ điều hành Linux, sử dụng node.js để hiển thị dòng chữ “Hello world” trên http://localhost:3000.
Tôi xin phép bỏ qua bước cài đặt và khởi động node.js.
Cài đặt ngrok
Trên trang download của ngrok, chọn “MORE OPTIONS”, rồi chọn download file cài đặt dành cho hệ điều hành Linux.
https://ngrok.com/download
Sử dụng câu lệnh dưới đây để giải nén file.
sudo unzip ngrok-stable-linux-amd64.zip
Chạy câu lệnh sau để di dời file vừa giải nén đến thư mục nơi có thể sử dụng câu lệnh của ngrok.
sudo mv ngrok /usr/local/bin
Publish trang web
Để chạy xác nhận khởi động, chạy câu lệnh dưới đây.
ngrok http 3000
Nếu hiển thị như thế này thì đã thao tác đúng.
Sau đó, nếu bạn truy cập vào URL có ghi chữ “Forwarding” thì trang web đối tượng sẽ hiển thị.
Trong ví dụ này, chúng ta truy cập vào đường dẫn https://1a59dd82300c.ngrok.io/.
Trên đây là toàn bộ trình tự publish trang web. Rất đơn giản phải không?
Cảm tưởng với tư cách người dùng miễn phí
- Dễ sử dụng do có thể thực hiện test liên kết với web server trong giai đoạn phát triển ứng dụng mobile, ứng dụng IoT ngay lập tức mà không cần chuẩn bị server.
- Chỉ cần nhập câu lệnh khởi động là có thể thực hiện chứng thực basic. “ngrok http -auth=”username:password” 8080″ (có khả năng tài khoản miễn phí thì không dùng được.)
- Do forward từ server ngrok.io nên bị ảnh hưởng bởi performance của server ngrok.io.
- Do thông qua server ngrok.io nên không biết được thông tin có được truyền đi một cách bảo mật hoàn toàn không. Có những chỗ phải tùy thuộc vào ngrok.
- Về luồng truyền tin thì như sau: client PC phía người dùng – (http/https) – server ngrok.io – (SSH Tunnel) – client PC phía web server. Từ server ngrok vào đến PC publish là đi trực tiếp vượt qua tường lửa, nên có thể bị kẹt bởi quy tắc bảo mật của khách hàng hoặc tổ chức sở hữu.
- Không thể publish bằng domain cố định với tài khoản miễn phí.
Cách sử dụng với tư cách người dùng miễn phí
Suy cho cùng nếu nhắc đến mục đích sử dụng ngrok với tư cách người dùng miễn phí thì có 3 trường hợp sau có thể dùng được:
- Dùng khi điều tra vấn đề kỹ thuật hoặc khi học tập trong network mà cá nhân chịu trách nhiệm với tư cách hoạt động cá nhân.
- Dùng trong dịch vụ sử dụng Restful API và ứng dụng mobile, ứng dụng IoT, khi điều chỉnh thiết lập hoặc chương trình trong chế độ debug ứng dụng lẫn nhau trong một thời gian có giới hạn.
- Dùng khi được khách hàng yêu cầu review trang web tạm thời trong giai đoạn đầu dự án khi chưa có server.