问题堆栈中的应用程序是Express,MongoDB,响应本机,节点(和axios)。 Express在ec2实例中可以达到MongoDB的要求,但我无法从应用程序(或邮递员)获得Express。
因此,当我向自己的注册路线发送POST请求时,Android Studio日志
"response: 'Unable to resolve host "api.my.url": No address associated with hostname'"
我在VPC设置,DHCP配置,路由54个DNS文件,多个实例等方面尝试了上百万种不同的尝试。
也在我的实例中尝试运行
curl -O https://bootstrap.pypa.io/get-pip.py
说
curl(6) could not resolve host bootstrap.pypa.io....
因此,似乎连接无法正常工作,但我不确定如何解决。我还确认bootstrap.pypa.io链接可在浏览器(Chrome)中正常工作,因此我的实例肯定存在一些入站/出站连接问题。
我尝试通过真实的电话和仿真器进行连接,这两者均与其他人设置的旧ec2实例一起使用,因此代码库不需要进行任何更改,我基本上已将问题隔离到AWS设置中,无论是DNS,VPC,实例本身,还是完全不同的东西,我都很困惑。
我在VPC中启用了DNS解析和主机名,IPv4 CIDR为10.0.0.0/16
,没有IPv6,我的ec2实例具有一个弹性IP,我尝试为我的路由创建一个公共和私有托管区域53生成域,并将私有IP和弹性IP添加到A记录中,并且ec2-13.23.243.us-east
类型的URL也为公共添加到NS,对于私有I,我仅将弹性IP添加到A记录中。该实例肯定在运行。我尝试创建入站和出站终结点并将其与VPC关联。这使用2个生成的IP地址(每个子网一个),所有内容都在同一区域上运行。我的实例正在运行Ubuntu 18 LTS
。
我相信这是我的AWS配置问题,而不是应用程序中的代码问题。
更新: 使用
禁用防火墙ufw disable
跑了
sudo nano /etc/resolv.conf
&将端口更新为1.1.1.1 并将安全组替换为一个,以允许来自任何IP的所有端口(临时) 并在子域之外将DNS A记录IP添加到了根域
此问题修复了无法解析的主机响应,并将其更改为
无法连接到my.url.com/10.0.1.209:443
更新2:
我决定从头开始,按照与上述相同的步骤创建一个新实例,安装了nginx并为nginx和letencrypt附加了新策略。现在转到浏览器中配置的URL,将返回nginx欢迎屏幕。
唯一的剩下就是尝试击中端点时出现的新404错误,我怀疑这与nginx配置有关。原来的问题解决了!
更新3:
我修复了我的nginx文件配置,现在我可以在浏览器中访问端点了,但是如果我从该应用尝试运行,它会显示
_response:'未验证主机名api.my.url:\ n证书:sha256 / 36bQKv2pd + / 7aog0gCHANGEDFVAtPEFrlALeam0 = \ n DN:CN = www.api.my.url \ n subjectAltNames:[www.api.my.url ]', _url:'https://api.my.url/api/endpoint/signup',