2009-12-06 104 views

回答

3

首先,我会强烈建议你不要从您的Mac提供的网站。这是一个非常糟糕的主意™。 Mac OS X网络共享和Django的包括http服务器(我假设您使用的)仅用于测试目的,其原因有很多,涉及速度,安全性等。 (但我希望有人愿意:)

其次,它已经向世界开放:任何人都可以使用您的IP地址连接到您的计算机而不是环回127.0.0.1(除非您被NAT)。再次,这对测试它非常有用(并且让你的朋友/同事/老板)暂时对其进行测试,但又不适合生产使用。真。

+0

为什么OSX网络共享不好? - 它是apache – Mark 2009-12-06 00:21:24

+0

从django包含的http服务器是不好的?什么是替代? – Johannes 2009-12-06 00:23:30

+0

Johannes,Django **开发**服务器仅用于开发,这在*文档*中一次又一次地被强调。有关生产部署方法,请参阅http://docs.djangoproject.com/zh/dev/howto/deployment/#howto-deployment-index – 2009-12-06 12:45:26

12

当你启动服务器指定的公网IP或任何IP使用0.0.0.0

例子:

sudo python manage.py runserver 0.0.0.0:80

如果没有IP和端口绑定其仅作回路启动应用程序这是127.0.0.1,并且不能在您的网络中访问。

0

这取决于你的真正目的是什么,你的意思是“可用于世界......或某事”。如果您确实希望能够通过网络永久访问它,您需要将其托管在服务器上(无论它是共享的还是专用的),您将永远不会让Mac打开,是吗? :)

在共享主机上托管Django - 我建议使用webfaction,关于设置Django项目的分步教程可以在他们的截屏视频和论坛中找到(基本计划每月9.50美元,两个月退款保证,其实际工作,尝试自己:)。 Djangofriendly.com

对于专用服务器,问问自己是否喜欢自己管理整个服务器(操作系统,Web服务器,数据库服务器,memcache,防火墙,备份等)。如果答案是“是”,请查看Linode,RackspaceSlicehost或甚至,但请记住它更昂贵,方式更复杂,但这就是最大的灵活性。一旦准备好尝试 - this is one of the best tutorials i've found in net for a given subject

如果您需要的只是一个概念证明,那么“无论我可以从我的网络浏览器访问,应该可以从世界任何地方访问”,请询问您的ISP是否获得私有IP地址。如果没有,嗯,最好去上面提到的选项:)如果你这样做,然后通过访问whatismyipaddress.com找出它是什么IP。然后按照Prashanth的建议启动Web服务器,然后在浏览器中输入whatismyip.org的IP地址。一无所获? a)关闭MacOSx的防火墙。依然没有? b)将您的Mac直接连接到ISP提供的以太网电缆,而无需路由器。重试在浏览器中输入您的IP地址。作品?很好,去谷歌“端口转发”,这将告诉你必须配置您的路由器使用路由器时具有相同的效果。没有?在stackoverflow中提出单独的问题,并尽可能详细地提供你正在做的事情。

Mac os如果数据包未正确路由到网络上的计算机,则Web共享不起作用。我想它能做的只是启动apache,并在防火墙中打开一些端口。但是如果你的个人路由器或ISP不会将外部数据包转发到你的计算机 - 你将无法得到你想要的。

祝你好运!