gpt4 book ai didi

python - 使用当前ec2公共(public)IP配置apache虚拟主机

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:44 25 4
gpt4 key购买 nike

我在 EC2 实例上有一个用户数据脚本,该脚本在启动时为 Flask Rest API 安装和配置 apache。所有文件都是从我的 Git 存储库中提取的,VirtualHost 配置如下:

<VirtualHost *:80>
ServerName *
ServerAdmin admin@mywebsite.com
WSGIPassAuthorization On
WSGIScriptAlias / /var/www/FlaskApi/flaskapi.wsgi
<Directory /var/www/FlaskApi/FlaskApi/>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/FlaskApi/FlaskApi/static
<Directory /var/www/FlaskApi/FlaskApi/static/>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

但是,在启动时,无法知道实例将获得哪个公共(public) IP 地址,因此我想知道 VirtualHost 是否有某种通配符配置,因此无需指定 ServerName 或知识产权。

编辑:根据 Jorge 的建议,我已将以下内容添加到我的启动脚本中,它运行得非常好!

ip=$(curl http://169.254.169.254/latest/meta-data/public-ipv4)
sudo sed -i "s/replace/$ip/g" /etc/apache2/sites-enabled/FlaskApi.conf

最佳答案

您的部分问题可能可以通过以下事实得到解答:(我相信)“VirtualHost *:80”告诉它监听该计算机的所有网络接口(interface),无论网络设备分配的 IP 地址如何。不过,我可能遗漏了你的问题中的一些内容。

据我所知,ServerName 字段指定虚拟主机应响应的主机请求。如果该字段显示whateverdomain.com,则虚拟主机将响应询问whateverdomain.com 的请求。如果该字段显示*.whateverdomain.com,它将响应对whateverdomain.com 的任何子域的请求。对于虚拟主机,您可能希望限制每个虚拟主机响应的域。重叠可能会导致错误 - 不知道。

关于python - 使用当前ec2公共(public)IP配置apache虚拟主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47165900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com