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

发布于 2024-10-14 07:19:48 字数 1723 浏览 5 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

感情洁癖 2024-10-21 07:19:48

作为一个完全的初学者,我一直在尝试在一个 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

创建文件domain1

sudo nano domain1

<VirtualHost *:80>
DocumentRoot /home/apache/domain1
ServerName domain1.com
ServerAlias www.domain1.com
</VirtualHost>

创建文件domain2

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

重新启动 apache

sudo service apache2 reload

将域重定向到服务器

仅当您将域名重定向到服务器 IP 时,创建的 VirtualHosts 才会起作用。域名只是可以转换为 IP 号码的名称。

本地计算机

要在本地计算机上测试您的配置,您需要编辑主机文件。

sudo nano /etc/hosts

它应该看起来像这样。

127.0.0.1       localhost domain1.com domain2.com

Hosts 文件告诉您的计算机域需要重定向到本地计算机。

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

127.0.0.1       stackoverflow.com

您将无法访问该网站。

服务器

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

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

ifconfig

As complete beginner, I have been trying to host multiple domains on one Apache VPS. Tutorials had too much information that lead me to confusion.

Below I describe, for complete begginers, how to host multiple domains on one VPS server with Ubuntu and Apache.

IMPORTANT! You need to use root account to execute most operations.

IMPORTANT! If you have been trying to make some changes to apache configuration before, undo them.

Creating VirtualHosts

Create folders for your domains on server.
For example:

/home/apache/domain1

/home/apache/domain2

Put index.html file in each folder with any text.

This is domain1
This is domain2

Go to /etc/apache2/sites-available folder.

/etc/apache2/sites-available

Create file domain1

sudo nano domain1

<VirtualHost *:80>
DocumentRoot /home/apache/domain1
ServerName domain1.com
ServerAlias www.domain1.com
</VirtualHost>

Create file domain2

sudo nano domain2

<VirtualHost *:80>
DocumentRoot /home/apache/domain2
ServerName domain2.com
ServerAlias www.domain2.com
</VirtualHost>

You can create subdomains same way.

sudo nano blog

<VirtualHost *:80>
DocumentRoot /home/apache/blog
ServerName blog.domain.com
ServerAlias www.blog.domain.com
</VirtualHost>

Enable created sites

sudo a2ensite domain1
sudo a2ensite domain2

Restart apache

sudo service apache2 reload

Redirecting domain to server

Created VirtualHosts will work only if you redirect your domain name to server IP. Domains are just names that can be translated to IP numbers.

Local computer

To test your configuration on local machine, you need to edit hosts file.

sudo nano /etc/hosts

It should look like this.

127.0.0.1       localhost domain1.com domain2.com

Hosts file tells your computer that domain needs to be redirected to local machine.

IMPORTANT! If you create entry in hosts file for existing domain, for example

127.0.0.1       stackoverflow.com

you will lose access to this website.

Server

In order to redirect domain to you web server, you need to create or modify "A"-type DNS record for given domain to IP address of your server. You can do it by panel control provided by your domain registrar.

If you do not know IP address of your server, log in to that server and type in command line:

ifconfig
七分※倦醒 2024-10-21 07:19:48

过程是:

  1. 将两个域都指向 VPS 的 IP。

  2. 配置您在 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;
   }

检查您的网络服务器文档以执行类似的操作。

The procedure is:

  1. Point both domains to the ip of the VPS.

  2. Configure the webserver you have installed on your VPS to answer to those two domains.

In the case of Nginx with Passenger, it is a matter of adding entries to you nginx.conf file. Like this:

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;
   }

Check your webserver documentation to do a similar thing.

萌能量女王 2024-10-21 07:19:48

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

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

This is always possible ... You can always configure name servers using one or two ip addresses on your VPS. Once configured, you can start pointing multiple domains using those name servers.

On my VPS there is only one IP address, but I am hosting 35+ sites there ....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文