【问题标题】:Apache configures different host applications to use the same IP and the same portApache 配置不同的主机应用程序使用相同的 IP 和相同的端口
【发布时间】:2021-10-06 10:20:51
【问题描述】:

比如我有一个外网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

【问题讨论】:

    标签: ubuntu flask deployment apache2 wsgi


    【解决方案1】:

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

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

    /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 地址,否则其他人将无法看到您的网站。您可以将条目放在主机文件中以进行本地测试,但这仅适用于具有这些主机条目的机器。

    【讨论】:

    • 非常感谢您的回答,我已经解决了,还需要其他配置
    猜你喜欢
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2011-08-29
    相关资源
    最近更新 更多