Ứng dụng chạy host 127.0.0.1

Nguyên nhân

127.0.0.1 là địa chỉ loopback, hay còn được gọi là localhost. Khi ứng dụng được chạy với host là 127.0.0.1, nó chỉ lắng nghe các kết nối trên cùng máy tính đang chạy ứng dụng. Điều này có nghĩa là ứng dụng chỉ sẽ phục vụ các yêu cầu từ chính nó, không thể truy cập từ các máy tính khác trong mạng. Host 127.0.0.1 thường được sử dụng trong môi trường develop tại máy tính cá nhân.

Tuy nhiên khi triển khai lên BizflyCloud App Engine, để truy cập được đến được dịch vụ của bạn, gói tin sẽ phải đi qua các proxy và chuyển tiếp đến container nơi ứng dụng bạn sẽ chạy. Vậy nên nếu cấu hình listien host là 127.0.0.1 thì container sẽ từ chối các yêu cầu từ bên ngoài container khiến bạn không thể truy cập được dịch vụ đã triển khai lên BizflyCloud App Engine

Và thường khi gặp lỗi ngày bạn sẽ gặp lỗi 502 Bad Gateway khi truy cập vào URL của Service

image

Cách phát hiện

Thường khi chạy ứng dụng thành công, bạn truy cập xem Logs của ứng dụng thấy thông báo “Server start on 127.0.0.1” thì có nghĩa Service của bạn đang chạy tại localhost và không truy cập được từ bên ngoài

Lưu ý: Một số ngôn ngữ khác nhau sẽ có thông báo khác nhau, tuy nhiên về cơ bản đều trả về thông báo có ý nghĩa như trên.

image

Khắc phục

Để khắc phục lỗi này các bạn cần thay đổi source code ứng dụng để ứng dụng chạy tại host 0.0.0.0 đồng nghĩa với việc chấp nhận kết nối từ mọi nguồn

Mỗi ngôn ngữ sẽ có cách cấu hình HOST khác nhau, bạn có thể tìm kiếm với cứ pháp: Ngôn ngữ + Framework + configure host 0.0.0.0

Dưới đây là ví dụ đối với framework Flask của Python:

if __name__ == '__main__':
    # run app in debug mode on port 5000
    app.run(debug=True, port=5000, host='0.0.0.0')

Nếu gặp khó khăn trong việc triển khai ứng dụng hoặc debug, đừng ngại nhờ hỗ trợ từ đội ngũ kỹ thuật viên của BizflyCloud!

Bạn có thể chat trực tiếp qua ô chat hoặc gửi ticket tại https://manage.bizflycloud.vn/ticket