使用 Amazon AWS 创建子域与在服务器内部创建子域 - 有什么区别?

使用 Amazon AWS 创建子域与在服务器内部创建子域 - 有什么区别?

我在 Amazon AWS(Ubuntu 服务器)上有一个实例。

我想为我的网站创建一个子域名:tools.example.com供我办公室里的人们使用,并构建工具(使用 PHP)以便员工使用。(例如代码自动化网络应用程序)。

我自己从来没有在 Linux 服务器上创建过子域名(我通常与使用 cPanel 等的托管公司合作),而且我是 Amazon AWS 的新手,我发现它非常棒,并且使用 Linux 服务器并自己完成所有工作 - 非常棒!

因此,我开始探索如何在我的网站上创建子域名,并且我知道我有两个选择,但我不知道它们之间有什么区别,会对我的工作产生什么影响等等。

第一个选项是使用 Amazon Route53 创建子域:http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingNewSubdomain.html

我遇到的第二种选择是使用 Ubuntu 服务器本身执行此操作,例如: https://askubuntu.com/questions/463618/setting-up-subdomain-on-ubuntu-server http://kim.sg/index.php/ubuntu/17-如何设置-ubuntu-server 上的子域名-14-04

有些事情对我来说似乎有点模糊,我很高兴能从那些对理论“东西”了解更多的人那里得到更多的启发,并知道如何指导我做出最适合我的选择。

请随时向我提问。

对于@Stefano Martins(2015 年 10 月 28 日):

好的,我这样做了:

<VirtualHost *:80>
    ServerName tools.example.com
    ServerAdmin [email protected]

    ErrorLog /var/www/tools.example.com/logs/error.log
    CustomLog /var/www/tools.example.com/logs/access.log combined
    DocumentRoot /var/www/tools.example.com/public_html
</VirtualHost>

mkdir -p /var/www/tools.example.com/{public_html,logs}

sudo a2ensite tools.example.com.conf
sudo service apache2 reload
sudo find /var/www/tools.example.com/public_html -type d -exec chmod 755 {} \;
sudo find /var/www/tools.example.com/public_html -type f -exec chmod 644 {} \;
sudo adduser ubuntu www-data
sudo find /var/www/tools.example.com/public_html -type d -exec chmod 775 {} \;
sudo find /var/www/tools.example.com/public_html -type f -exec chmod 664 {} \;

我的文件夹是var那个,而不是那个srv。我把所有内容从 srv 改为 var,现在我不再收到 403 错误了。但现在我无法/var/www/tools.example.com/public_html通过 FTP 上传。

更新: 我用sudo chown www-data:www-data -R /var/www/ 它解决了我的问题。

多谢!

答案1

这就是 Amazon Web Services 的特点。您有很多选项来构建您的基础设施,首先是简单的 EBS (Elastic Beanstalk),它提供了一个易于部署(又称快速而粗糙的方式)的环境。

另一种选择是使用 EC2 并自行构建,因为这是您迄今为止选择的方式,所以基本上您所需要的是:

在您的 Route 53 中,创建一个指向您实例 IP 地址的 CNAME 或 A 记录(您应该使用弹性 IP 来确保您的实例始终获得相同的 IP 地址)。我建议使用 CNAME 条目,因为您的区域中已经有 A 记录。这会让您的 DNS 解析速度稍慢,但随着时间的推移更容易管理。我们可以将其称为 tools.example.com。

在 Apache 配置目录(通常为 /etc/apache2/sites-available)中,创建一个名为 tools.example.com.conf 的文件,其内容如下:

<VirtualHost *:80>
    ServerName tools.example.com
    ServerAdmin [email protected]

    ErrorLog /srv/www/tools.example.com/logs/error.log
    CustomLog /srv/www/tools.example.com/logs/access.log combined
    DocumentRoot /srv/www/tools.example.com/public_html
</VirtualHost>

创建用于存储您的网站/应用程序的目录:

mkdir -p /srv/www/tools.example.com/{public_html,logs}

启用新的虚拟主机并重新加载 Apache 的服务:

sudo a2ensite tools.example.com.conf
sudo service apache2 reload

提示:在大多数情况下,使用 AWS 基础设施和开箱即用的解决方案更便宜。

注意:基本上,这就是您所需要的,但对于生产环境来说这并不是 100% 理想的。

再见!

答案2

你需要两样东西才能让你的子域名正常工作。

  1. DNS 服务器中的 DNS 记录。此记录应在您在裸域 (yourdomain.tld) 上设置的名称服务器上创建。如果您已将 Amazon Route53 用于裸域,那没问题,您也可以将其用于子域(Amazon Route53 只是一种 DNS 托管服务)

  2. Web 服务器中的虚拟主机。

相关内容