当您在网络服务器上托管多个站点时,最好的方法是为您要发布的每个站点正确设置虚拟主机文件。这意味着当有人查看您的站点时,请求将传送到服务器反过来会根据域名确定要提供哪个站点的文件。
正如我所见,您已经为要部署的每个应用程序创建了一个目录,并且我假设您的应用程序已经存储在这些目录中,所以您已经完成了第一步。
/var/www/flask1
/var/www/flask2
下一步是为每个网站创建一个配置文件并将其存储在/etc/apache2/sites-available/。在这个目录上,Apache 有一个默认配置文件 named 000-default.conf,您可以使用它来创建自己的配置:
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/flask1.com.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/flask2.com.conf
为每个站点创建配置文件后,您只需使用ServerName 和DocumentRoot 编辑此文件,它们应指向存储应用程序的目录。
vim /etc/apache2/sites-available/flask1.com.conf
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName flask1.com
ServerAlias www.flask1.com
DocumentRoot /var/www/flask1
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
最后一步是启用您为 flask1.com.conf 和 flask2.com.conf 创建的配置文件,以便您的服务器将映射到您的域
a2ensite flask1.com.conf
a2ensite flask2.com.conf
重启你的 Apache 服务器
systemctl restart apache2
注意
As per Apache official documentation,在您的 Apache 服务器上创建虚拟主机配置不会神奇地导致为这些主机名创建 DNS 条目。您必须在 DNS 中有名称,解析为您的 IP 地址,否则其他人将无法看到您的网站。您可以将条目放在主机文件中以进行本地测试,但这仅适用于具有这些主机条目的机器。