【问题标题】:how to serve website with apache over the internet?如何通过互联网使用 apache 服务网站?
【发布时间】:2013-08-27 07:42:33
【问题描述】:

我设法在 apache 上同时提供了我的项目应用程序及其静态文件。但只有我可以通过输入localhost 和我的 IPv4 地址来查看我的网页。而且我无法从对方的计算机上看到我的网页。在我的 http.conf 中,它是Listen 80。我对此知之甚少。我什至注册了一个免费的动态 DNS 提供商,但即使从那个 url 我也只能看到 It works 消息。我真的很讨厌这些东西。请在这里指导我。谢谢。

http.conf的sn-p:

WSGIScriptAlias / C:/Users/robin/web/etc/etc/etc/wsgi.py
WSGIPythonPath C:/Users/robin/web/etc/etc

<Directory C:/Users/robin/web/etc/etc>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

#Alias /robots.txt /path/to/mysite.com/static/robots.txt
#Alias /favicon.ico /path/to/mysite.com/static/favicon.ico

AliasMatch ^/([^/]*\.css) C:/Users/robin/web/etc/etc/static/styles/$1

#Alias /media/ /path/to/mysite.com/media/
Alias /static/ C:/Users/robin/web/etc/etc/static/

<Directory C:/Users/robin/web/etc/etc/static>
Order deny,allow
Allow from all
</Directory>

#<Directory /path/to/mysite.com/media>
#Order deny,allow
#Allow from all
#</Directory>

WSGIScriptAlias / C:/Users/robin/web/etc/etc/etc/wsgi.py

<Directory C:/Users/robin/web/etc/etc/etc>
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>

【问题讨论】:

  • 您需要使用 apache 配置来定义虚拟主机。或者默认页面应该转到您的应用程序而不是默认的 apache 文件
  • 我该怎么做?我对这些东西很菜鸟......

标签: django apache apache2


【解决方案1】:

您需要执行以下操作:

1.确保服务器可公开访问 为此,您需要确保

  • 端口 80 通过您的路由器路由到服务器的内部 IP 地址。这称为 NAT。如果您使用的是 Cisco 路由器,您可以查看说明here
  • 任何防火墙都配置为不阻止端口 80 上的流量。如果您使用的是 Linux,您很可能需要configure iptables。如果您使用的是 Windows,您可以在 windows firewall 上执行此操作。如果您使用的是第三方防火墙,则需要搜索 google 以了解如何操作。
  • 您需要确保使用公共 IP 地址进行连接。您可以使用http://whatismyipaddress.com/ 等网站找到此信息

2。在 apache 上设置虚拟主机 您只看到“It Works”消息的原因是 Apache 指向该域名的服务器上的默认 Web 根目录。要解决此问题,您需要为域名设置一个虚拟主机,并将其指向应用程序的根目录。可以在here找到相关说明。

在您的 apache 配置中的虚拟主机下,您可以添加如下内容:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin [email]@[address].com
    DocumentRoot [directory root]
    ServerName [registered domain name without www eg: something.com]
    ServerAlias *.[registered domain name without www]
</VirtualHost>

“NameVirtualHost *:80”可能已经存在,所以先搜索配置。通常它在那里并且默认被注释掉,所以你可能只需要删除#。

注意:始终通过将内容复制到另一个文件来备份配置。进行调整后还要重新启动apache。

【讨论】:

  • 对不起。我阅读了文件,但对我来说很难理解。你能给我解释一下吗?我在上面添加了我的 http.conf sn-p 并在防火墙中启用了 Apache 进行连接。请帮我怎么做。谢谢。
  • 请看我的编辑。查看您在编辑中添加的 sn-p,我认为您的 DocumentRoot 是“C:/Users/robin/web/etc/etc”。它将是您的网页索引文件所在的位置。
猜你喜欢
  • 2013-03-23
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多