仅使用一个VPS托管两个域名?

Art*_*mix 51 dns hosting vps

可能吗?有人告诉我这是,但我不确定.

如果可能的话,我应该怎么做?我有一个/ www文件夹,我的网站所在.如何配置2个不同的站点?

Raf*_*fal 56

作为完全初学者,我一直在尝试在一个Apache VPS上托管多个域.教程中有太多的信息让我感到困惑.

下面我将介绍如何使用Ubuntu和Apache在一个VPS服务器上托管多个域.

重要!您需要使用root帐户执行大多数操作.

重要!如果您之前尝试对apache配置进行一些更改,请将其撤消.

创建VirtualHosts

在服务器上为您的域创建文件夹.例如:

/home/apache/domain1

/home/apache/domain2
Run Code Online (Sandbox Code Playgroud)

将index.html文件放在每个文件夹中,包含任何文本.

This is domain1
This is domain2
Run Code Online (Sandbox Code Playgroud)

转到/ etc/apache2/sites-available文件夹.

/etc/apache2/sites-available
Run Code Online (Sandbox Code Playgroud)

创建文件domain1

sudo nano domain1

<VirtualHost *:80>
DocumentRoot /home/apache/domain1
ServerName domain1.com
ServerAlias www.domain1.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

创建文件domain2

sudo nano domain2

<VirtualHost *:80>
DocumentRoot /home/apache/domain2
ServerName domain2.com
ServerAlias www.domain2.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

您可以以相同的方式创建子域.

sudo nano blog

<VirtualHost *:80>
DocumentRoot /home/apache/blog
ServerName blog.domain.com
ServerAlias www.blog.domain.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

启用创建的网站

sudo a2ensite domain1
sudo a2ensite domain2
Run Code Online (Sandbox Code Playgroud)

重启apache

sudo service apache2 reload
Run Code Online (Sandbox Code Playgroud)

将域重定向到服务器

只有将域名重定向到服务器IP时,创建的VirtualHost才会起作用.域只是可以转换为IP号的名称.

本地电脑

要在本地计算机上测试配置,您需要编辑hosts文件.

sudo nano /etc/hosts
Run Code Online (Sandbox Code Playgroud)

它看起来应该是这样的.

127.0.0.1       localhost domain1.com domain2.com
Run Code Online (Sandbox Code Playgroud)

主机文件告诉您的计算机该域需要重定向到本地计算机.

重要!例如,如果在主机文件中为现有域创建条目

127.0.0.1       stackoverflow.com
Run Code Online (Sandbox Code Playgroud)

您将无法访问此网站.

服务器

为了将域重定向到您的Web服务器,您需要为给定域创建或修改"A"型DNS记录到服务器的IP地址.您可以通过域名注册商提供的面板控制来执行此操作.

如果您不知道服务器的IP地址,请登录该服务器并键入命令行:

ifconfig
Run Code Online (Sandbox Code Playgroud)

  • 当在site-available中创建时,他们有扩展名.conf而不是sudo nano domain1它应该是sudo nano domain1.conf ..或者如果你已经使用mv创建了它,则重命名该文件 (5认同)

Ner*_*ian 47

程序是:

  1. 将两个域指向VPS的ip.

  2. 配置您在VPS上安装的Web服务器以回答这两个域.

对于Nginx with Passenger,需要在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;
   }
Run Code Online (Sandbox Code Playgroud)

检查您的Web服务器文档以执行类似的操作.

  • 我从未在生产中使用过Apache,但我找到了这个链接:http://httpd.apache.org/docs/2.0/vhosts/examples.html (3认同)

小智 11

这总是可行的......您始终可以使用VPS上的一个或两个IP地址配置名称服务器.配置完成后,您可以使用这些名称服务器开始指向多个域.

在我的VPS上只有一个IP地址,但我在那里托管了35个以上的网站....

  • 是的,但是您如何将请求发送到 vps 上的不同端口? (2认同)