我想在我的 Apache2 服务器上托管多个不同的网站,但是,我希望这些网站托管在我的私有 IP 范围内,不能从外部访问,我希望像这样托管它们:
localhost/drupal #<= takes me to a drupal page
localhost/wordpress #<= takes me to a wordpress page
localhost/somerandompage #<= takes me to another page
我知道我可以VirtualHost *:80
这样使用:
<VirtualHost *:80>
ServerName drupal
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/drupal.com
<Directory /var/www/drupal.com>
Options +Indexes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
DirectoryIndex index.html index.php
LogLevel debug
ErrorLog ${APACHE_LOG_DIR}/drupal.com/error.log
CustomLog ${APACHE_LOG_DIR}/drupal.com/access.log combined
</VirtualHost>
有没有什么办法可以让我按照自己想要的方式托管网站?
答案1
我希望网站托管在我的私有 IP 范围内,外部无法访问。
除了防火墙、配置或其他技术问题之外,任何能够在网络上联系您的服务器的本地计算机都应该能够正常访问您的 Web 服务。
为了防止“外部”访问,只需不要将您的服务器公开(即不要在路由器上将任何端口转发到该服务器)。
我想像这样接待他们:
- localhost/drupal #<= 带我进入 drupal 页面
- localhost/wordpress #<= 带我进入 wordpress 页面
- localhost/somerandompage #<= 带我到另一个页面
/var/www/html/drupal.com
由于您显然是在 VirtualHost 块下定义 DocumentRoot ,因此只需在此目录中添加一个例如drupal
和wordpress
文件夹,并将必要的文件放在每个文件夹中(例如中的 Drupal/var/www/html/drupal.com/drupal
和中的 WordPress /var/www/html/drupal.com/wordpress
)。
对于somerandompage
,将.html
文件(或您拥有的文件)直接放在 DocumentRoot 中,即/var/www/html/drupal.com
。
请注意,这localhost
是一个特殊名称,通常指127.0.0.1(主机 PC 本身)。如果您希望将此名称用作从另一台本地 PC 引用 Web 服务器的名称,则可能需要在hosts
要执行此操作的每台 PC 上修改该文件(但作为建议,我会考虑将其命名为其他名称以尽量减少混淆/问题)。