Apache 配置不同的主机应用程序使用相同的 IP 和相同的端口

比如我有一个外网ip118.16.132.42和80端口

flask1 和flask2 项目应用部署在/var/www,

我想通过不同的应用名称进入不同的项目应用

比如可以实现118.16.132.42:80/flask1到flask1和118.16.132.42:80/flask2到flask2的应用

这里是应用路径

/var/www/flask1
/var/www/flask2
qayin123 回答:Apache 配置不同的主机应用程序使用相同的 IP 和相同的端口

当您在 Web 服务器上托管多个站点时,最好的方法是为您要发布的每个站点正确设置虚拟主机文件。这意味着当有人查看您的站点时,请求将传送到反过来,服务器将根据域名确定提供哪个站点的文件。

正如我所见,您已经为要部署的每个应用程序创建了一个目录,我假设您的应用程序已经存储在这些目录中,所以您已经完成了第一步。

/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

为每个站点创建配置文件后,您只需使用 ServerNameDocumentRoot 编辑此文件,它们应指向您的应用程序的存储目录。>

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.confflask2.com.conf 创建的配置文件,以便您的服务器将映射到您的域

a2ensite flask1.com.conf
a2ensite flask2.com.conf

重启你的Apache服务器

systemctl restart apache2

注意

As per Apache official documentation,在您的 Apache 服务器上创建虚拟主机配置不会神奇地导致为这些主机名创建 DNS 条目。您必须拥有 DNS 中的名称,解析为您的 IP 地址,否则其他人将无法看到您的网站。您可以将条目放入主机文件中以进行本地测试,但这只能在具有这些主机条目的机器上运行。

本文链接:https://www.f2er.com/6923.html

大家都在问