使用SSH隧道让Django服务器认为它在AWS内部运行?

前端之家收集整理的这篇文章主要介绍了使用SSH隧道让Django服务器认为它在AWS内部运行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

你怎么能让你的本地Django开发服务器认为它使用SSH隧道在你的AWS网络中运行?

我的场景,我正在运行一个本地Django服务器,即python manage.py runserver和Redis作为缓存后端(Elasticache).当我的应用程序在AWS环境中运行时,它可以访问Elasticache,但是,本地它不会(这是一件好事).如果由于某种原因我想用Elasticache测试我的本地环境,我需要以某种方式使用SSH隧道使AWS认为它在VPC网络内运行.

我试过通过使用下面的方法来实现这一点.我已经确认我可以使用SSH隧道连接本地连接Redis Desktop Manager所以100%我知道AWS支持这个,我的问题现在正在用Django做同样的事情.

这就是我尝试过的:

> python manage.py runserver 8000
> ssh -i mykey.pem ec2-user@myRandomEC2.com -L 6379:localhost:6379

当我访问http://127.0.0.1:8000/时,收到消息“错误60连接到”消息.

我在这里做错了什么?

笔记:

> ec2-user@myRandomEC2.com不是Redis服务器,只是另一个
AWS上的EC2实例,可以访问我想要用作的Elasticache
隧道.
> mykey.pem具有访问权限和正确的权限.
> ec2实例具有所有正确的权限和访问端口.
>使用Redis Desktop Manager测试SSH隧道,这适用于
那个软件.
> Elasticache和EC2实例都在同一个区域,可以相互连接.

最佳答案
ssh -i mykey.pem ec2-user@myRandomEC2.com -L 6379:localhost:6379

这会将来自本地计算机(on:6379)的请求转发到EC2实例上的localhost:6379.这不是你想要的(除非你在EC2实例上本地运行redis)

您应该使用Elasticache IP

ssh -i mykey.pem ec2-user@myRandomEC2.com -L 6379:

猜你在找的Python相关文章