2011-09-21 28 views
19

Tôi đã tạo ứng dụng web Python bằng CherryPy và đã triển khai trên máy cục bộ của mình.Ứng dụng web Python (CherryPy) được triển khai cục bộ, nhưng không hiển thị trên mạng nội bộ

Khi tôi cố gắng xem nó từ một máy tính khác trong nhà, không có gì trở lại.

Tuy nhiên, nếu tôi có thể tạo một file html đơn giản, và triển khai nó với:

$ python -m SimpleHTTPServer 

Nó có thể nhìn thấy trên mạng nội bộ.

Tôi cho rằng tại sao ứng dụng của tôi có thể hoạt động cục bộ, nhưng không khả dụng trên mạng nội bộ, vì không có sự cố kết nối giữa các máy này và tôi có thể phục vụ nội dung khác trên cùng một cổng.

Tôi chưa sử dụng tệp cấu hình, tôi đang sử dụng cài đặt CherryPy mặc định.

Trả lời

27

Cài đặt mặc định có khả năng liên kết với máy chủ cục bộ, không được công bố công khai. Nếu bạn muốn CherryPy chạy trên một giao diện công cộng, bạn sẽ phải hướng dẫn nó để làm điều đó. Từ this discussion tôi thấy:

cherrypy.config.update(
    {'server.socket_host': '10.149.4.240' }) # Pub IP 
cherrypy.quickstart() 

hoặc

cherrypy.config.update(
    {'server.socket_host': '0.0.0.0'})  
cherrypy.quickstart() 

Để liên kết với tất cả các giao diện.

+1

Bạn sẽ ổn với 0.0.0.0. Đó là cơ bản máy tính địa phương của bạn, có thể truy cập công khai (trong khi 127.0.0.1 mặc định là máy tính cục bộ của bạn, không thể truy cập công khai). – Dave

+2

Để làm rõ câu trả lời này, một cách để cấu hình máy chủ lưu trữ socket là gọi 'cherrypy.config.update ({'server.socket_host': '0.0.0.0'})' trước khi gọi 'cherrypy.quickstart()'. Một tập tin cấu hình cũng có thể được sử dụng. –

Các vấn đề liên quan