[英]web ressources don't load on Beanstalk - https instead of http header
所以我用 node.js 和 express(主要是 express 應用程序生成器的框架)創建了一個簡單的 http web 服務器。 然后我將服務器上傳到 AWS Beanstalk Web 環境。
問題是我無法從服務器加載資源(CSS 和 javascript),如果我連接到它。 如果我在瀏覽器中打開網站,我會得到一個net::ERR_CONNECTION_TIMED_OUT
來加載所有資源。
我認為問題是 beanstalk 上的 get 請求使用了“https”網址,
Request URL: https://...elasticbeanstalk.com/javascripts/GameLogic.js
因為它適用於我的本地主機,但它使用“http”網址。
Request URL: http://localhost:3000/javascripts/GameLogic.js
html 站點本身也會加載(在資源超時之后),但這也使用“http”請求
Request URL: http://....elasticbeanstalk.com/
您能否更改 AWS Beanstalk Web-Environment 中的標頭請求 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="\stylesheets\style.css">
<script src="/javascripts/jquery.min.js"></script>
<script src="/javascripts/GameLogic.js"></script>
我試過不使用頭盔,但該版本的行為完全相同,並且如果它在 beanstalk 上(在 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 之前創建了一個新的包鎖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.