我想让我的apache 2开发服务器公开到互联网上,这是一个基于Django的网站。
这是我的apache2configuration:
<VirtualHost *:80> Alias /media /home/user/myproject/statics Alias /admin_media /home/myuser/django/Django-1.1.1/django/contrib/admin/media WSGIScriptAlias / /home/myuser/myproject/myproject_wsgi.py WSGIDaemonProcess myproject user=myuser group=myuser threads=25 WSGIProcessGroup myproject </VirtualHost>
当我做netstat -lntup
我得到:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN - tcp6 0 0 :::80 :::* LISTEN - tcp6 0 0 :::22 :::* LISTEN - tcp6 0 0 ::1:631 :::* LISTEN - udp 0 0 0.0.0.0:5353 0.0.0.0:* - udp 0 0 0.0.0.0:38582 0.0.0.0:*
我用ADSL连接,因此我在路由器后面。 为此,我已经将我的电脑DMZ启用到了我的机器上。
可能是什么问题? 当我尝试用我的IPlogin时,我得到我的路由器configuration页面,当一个朋友试图从互联网连接我,他得到“未经授权”。
您需要使用您的路由器configuration来执行端口80的端口转发。不是所有的路由器都支持端口转发。
另外,一个IP(您的公共IP)不能共享一个端口。 端口80由路由器自己的networking服务器(正在处理路由器configuration接口)使用。 您可能需要将8080这样的非标准端口从您的路由器转发到您的Apache服务器的端口80.在这种情况下,您的朋友将使用http:// your-public-ip:8080 /
第三,确保Apache被configuration为通过IPv4在端口80上工作。 根据你的netstat输出,它现在只能绑定到端口80上的IPv6。
为了testing,首先应该在http://127.0.0.1/所在的Apache服务器上进行本地testing。 一旦这个工作,你可以添加端口转发外部访问。