如何使用GCP和NGINX修复502坏网关错误
我正试图学习在GCP vm实例()上创建Apache气流管道的教程,但在构建并运行docker容器后,当我尝试使用以下方法访问Web服务器时,Nginx 1.14出现了“502坏网关”错误:如何使用GCP和NGINX修复502坏网关错误,nginx,google-cloud-platform,google-compute-engine,airflow,Nginx,Google Cloud Platform,Google Compute Engine,Airflow,我正试图学习在GCP vm实例()上创建Apache气流管道的教程,但在构建并运行docker容器后,当我尝试使用以下方法访问Web服务器时,Nginx 1.14出现了“502坏网关”错误: http://<VM external ip>/ 但这并没有改变任何事情 GCP实例是一个带有Ubuntu 18.04的N1-standard-8,并且启用了云、HTTPS和HTTP访问 启用的Nginx站点包括: server { listen 80; location /
http://<VM external ip>/
但这并没有改变任何事情
GCP实例是一个带有Ubuntu 18.04的N1-standard-8,并且启用了云、HTTPS和HTTP访问
启用的Nginx站点包括:
server {
listen 80;
location / {
proxy_pass http://0.0.0.0:8080/;
}
}
根本原因:
您遇到的问题与keepalives无关,它更简单-docker容器退出并且没有运行,因此当nginx尝试将您的请求代理到容器中时,它失败,从而导致错误。上述故障是由于气流与当前版本的sqlalchemy不兼容造成的 验证:
运行此命令以查看失败容器的日志
sudo docker logs `sudo docker ps -a -f "ancestor=greenr-airflow" --format '{{.ID}}'`
您将看到容器中的python无法导入包,出现以下错误:
No module named 'sqlalchemy.ext.declarative.clsregistry'
解决方案:
虽然我严格遵守了教程,但我还是建议不要这样做
使用sudo运行命令您可能希望与教程a有所不同
为了不让你失望,我才咬了你一口
跑步前
sudo docker build -t greenr-airflow:latest .
命令,编辑Dockerfile文件并添加以下两行
&& pip install SQLAlchemy==1.3.23 \
&& pip install Flask-SQLAlchemy==2.4.4 \
在正在安装的软件包列表的某个位置,我在之后添加了它
&& pip install -U pip setuptools wheel \
这是写作时的第54行
如果要重新使用同一实例,请在更改文件后删除并重新生成图像:
sudo docker rmi greenr-airflow
sudo docker build -t greenr-airflow:latest .
sudo docker rmi greenr-airflow
sudo docker build -t greenr-airflow:latest .