amazon-web-services - 无法使用 Cognito 访问基于 nginx 的 AWS Kibana VPC
问题描述
我使用基于 Elasticsearch VPC,为了连接到 kibana,我使用 nginx 反向代理。我遵循这个:https ://aws.amazon.com/premiumsupport/knowledge-center/kibana-outside-vpc-nginx-elasticsearch/?nc1=h_ls 。
当我尝试访问https://ec2-xxxx.region-x.compute.amazonaws.com(EC2 实例包含 nginx )。我有一个重定向到https://ec2-xxxx.region-x.compute.amazonaws.com/login?response_type=code&client_id=xxxx..。而是https://auth.website.com/login?response_type=code&client_id=xxxx..。(auth.website.com 是 Cognito 主机)
然后我有一个 502 坏网关。
我的 nginx 配置:
server {
listen 443;
server_name $host;
rewrite ^/$ https://$host/_plugin/kibana redirect;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location /_plugin/kibana {
# Forward requests to Kibana
proxy_pass https://vpc-domain-xxxxx.region.es.amazonaws.com/_plugin/kibana;
# Handle redirects to Amazon Cognito
proxy_redirect https://auth.exmample.com https://$host;
# Update cookie domain and path
proxy_cookie_domain vpc-domain-xxxxx.region.es.amazonaws.com $host;
proxy_cookie_path / /_plugin/kibana/;
# Response buffer settings
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
location ~ \/(log|sign|error|fav|forgot|change|saml|oauth2) {
# Forward requests to Cognito
proxy_pass https://auth.exmample.com;
# Handle redirects to Kibana
proxy_redirect https://vpc-domain-xxxxx.region.es.amazonaws.com https://$host;
# Update cookie domain
proxy_cookie_domain auth.exmample.com $host;
}
}
谢谢
解决方案
- 在启用浏览器开发工具并选择“网络”选项卡的情况下重新启动页面。您也许可以从这里开始调查原因。
- 访问您的 EC2 实例,然后检查位于 /var/log/nginx/ 目录的 nginx 日志(对于基于 linux 的分发版)。
- 检查您的 EC2 实例的安全组。
推荐阅读
- python - 尽管检测到所有元素,但未选择所有元素
- postgresql - 无法从 docker-compose postgresql 服务连接到 postico
- pandas - 如何使用apply用前一列值填充pandas列
- virtocommerce - 从源代码全新安装后 Virto Commerce 智能缓存模块出错
- php - MySQL:从两个表中的任何一个中删除行
- scala - Scala 为数据框中的每一行应用一个函数
- docker - 在 Docker 的 A VOLUME 中安装整个数据库(包括二进制文件)
- java - Maven - 如何对依赖于另一个项目的项目进行单元测试?
- rest - REST API 查询字符串
- python - 对变量有多个 == 语句