Apache2,使我的网站可以公开访问

Apache2,使我的网站可以公开访问

我想让我的 apache 2 开发服务器公开到互联网,它是一个基于 Django 的网站。

这是我的 apache2 配置:

<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 启用到我的机器。

可能存在什么问题?当我尝试使用我的 IP 登录时,我得到了我的路由器配置页面,当一个朋友尝试从互联网连接到我时,他得到“未授权”的提示。

答案1

您需要使用路由器配置来执行端口 80 的端口转发。但并非所有路由器都支持端口转发。

此外,一个 IP(您的公共 IP)不能共享一个端口。端口 80 被路由器自己的 Web 服务器(处理路由器配置界面)使用。您可能需要将非标准端口(如 8080)从路由器转发到 Apache 服务器的端口 80。在这种情况下,您的朋友可以使用http://你的公共 IP:8080/

第三,确保 Apache 配置为在 IPv4 上的端口 80 上工作。根据您的 netstat 输出,它目前仅在端口 80 上绑定到 IPv6。

要进行测试,首先你应该在 Apache 服务器上进行本地测试http://127.0.0.1/可以了。一旦运行正常,您就可以添加端口转发以供外部访问。

相关内容