Web 资源不会在 Beanstalk 上加载 - https 而不是 http 标头



问题

因此,我用node.js和express创建了一个简单的http web服务器(主要是express应用程序生成器的框架(。然后我将服务器上传到AWS Beanstalk网络环境中。

问题是,如果我连接到服务器,就无法从服务器加载资源(CSS和javascript(。我得到一个net::ERR_CONNECTION_TIMED_OUT如果我在浏览器中打开网站,用于加载所有资源。

我认为问题是关于豆茎的get请求使用了一个";https";url,

Request URL: https://...elasticbeanstalk.com/javascripts/GameLogic.js

因为它在我的本地主机上工作,但在那里它使用了一个";http";url。

Request URL: http://localhost:3000/javascripts/GameLogic.js

此外,html站点本身加载(在资源超时之后(;http";请求

Request URL: http://....elasticbeanstalk.com/

你能将AWS Beanstalk Web环境中的头请求url(用于CSS、JS(更改为使用http而不是https吗?或者在HTML或Node.js上更改它?

信息

服务器使用node.js头盔模块。然后我只发送我的html页面的传入请求:

app.get('/', function(req, res, next) {
res.sendFile(path.join(__dirname + "/public/main.html")); //Um bei / als pfad die main.html zu geben
}); 

在html页面中,我请求资源:

<link rel="stylesheet" type="text/css" href="stylesheetsstyle.css">
<script src="/javascripts/jquery.min.js"></script>
<script src="/javascripts/GameLogic.js"></script>

解决方案尝试

我尝试过不使用头盔,但该版本的行为完全相同,如果它在beanstall上,就不会加载ressource(在localhost服务器上,它总是有效的(。

我还尝试更改一些安全组规则,允许从所有源到负载平衡器的端口443上的https,以及从负载平衡器到ec2实例的端口443的https。情况没有改变。

然后我尝试将https请求重定向到http

app.get('/', function(req, res, next){
console.log("redirect to http?");
res.redirect('http://' + req.headers.host + req.url);
});

但是该网站甚至没有加载html,因为";到许多重定向";。

因此,目前我对如何使https请求工作或如何将其更改为http请求没有想法。

注释

我也在使用学生帐户,所以我无权使用AWS证书管理器或将ELB重定向到HTTPS,如果这与此有关的话。

好吧,node.js的头盔模块出了故障。我不知道是什么把标题改成了https,hsts似乎只是其中的一部分。

但在完全删除后,我和其他人可以访问该网络应用程序并加载资源。

我在早些时候的测试中没有发现它的原因是:移除头盔后,我从未删除或重新生成我的包锁。所以它还在里面。现在我卸载了它,并在上传到AWS Beanstalk之前制作了一个新的包锁定。

最新更新