是否可以?有人告诉我是,但我不确定。
如果可能的话,我该怎么做?我的网站所在的位置有一个 /www 文件夹。如何配置 2 个不同的站点?
作为一个完整的初学者,我一直试图在一个 Apache VPS 上托管多个域。教程有太多的信息让我感到困惑。
下面我将针对初学者描述如何使用 Ubuntu 和 Apache 在一台 VPS 服务器上托管多个域。
重要的!您需要使用 root 帐户来执行大多数操作。
重要的!如果您之前一直尝试对 apache 配置进行一些更改,请撤消它们。
在服务器上为您的域创建文件夹。例如:
/home/apache/domain1
/home/apache/domain2
将 index.html 文件与任何文本一起放入每个文件夹中。
This is domain1
This is domain2
转到 /etc/apache2/sites-available 文件夹。
/etc/apache2/sites-available
创建文件域1
sudo nano domain1
<VirtualHost *:80>
DocumentRoot /home/apache/domain1
ServerName domain1.com
ServerAlias www.domain1.com
</VirtualHost>
创建文件域2
sudo nano domain2
<VirtualHost *:80>
DocumentRoot /home/apache/domain2
ServerName domain2.com
ServerAlias www.domain2.com
</VirtualHost>
您可以以相同的方式创建子域。
sudo nano blog
<VirtualHost *:80>
DocumentRoot /home/apache/blog
ServerName blog.domain.com
ServerAlias www.blog.domain.com
</VirtualHost>
启用创建的网站
sudo a2ensite domain1
sudo a2ensite domain2
重启阿帕奇
sudo service apache2 reload
仅当您将域名重定向到服务器 IP 时,创建的 VirtualHosts 才会起作用。域只是可以转换为 IP 号码的名称。
要在本地机器上测试您的配置,您需要编辑 hosts 文件。
sudo nano /etc/hosts
它应该看起来像这样。
127.0.0.1 localhost domain1.com domain2.com
Hosts 文件告诉您的计算机需要将域重定向到本地计算机。
重要的!例如,如果您在现有域的 hosts 文件中创建条目
127.0.0.1 stackoverflow.com
您将无法访问本网站。
为了将域重定向到您的 Web 服务器,您需要将给定域的“A”型 DNS 记录创建或修改为您服务器的 IP 地址。您可以通过域注册商提供的面板控制来完成。
如果您不知道服务器的 IP 地址,请登录该服务器并输入命令行:
ifconfig
程序是:
将两个域都指向 VPS 的 ip。
配置您在 VPS 上安装的网络服务器以响应这两个域。
对于带有Passenger的Nginx,只需将条目添加到您的nginx.conf文件中。像这样:
server {
listen 80;
server_name domain1;
root /path/to/your/project;
passenger_enabled on;
}
server {
listen 80;
server_name domain2;
root /path/to/your/project;
passenger_enabled on;
}
检查您的网络服务器文档以执行类似的操作。
这始终是可能的……您始终可以在您的 VPS 上使用一个或两个 IP 地址来配置名称服务器。配置完成后,您可以开始使用这些名称服务器指向多个域。
在我的 VPS 上只有一个 IP 地址,但我在那里托管了 35 个以上的站点....