我在獲取504 GATEWAY_TIMEOUT
http響應後60秒的頁面加載。獲取504 GATEWAY_TIMEOUT NodeJs
它不是一個正在加載的實際頁面,而是一個正在執行的進程。我期待它花費超過60秒,我試圖增加超時值,但它沒有幫助。
我正在使用快速框架進行路由,並在EB(AWS Elastic Beanstalk)上託管作業。由於我已經增加了在AWS控制檯中的EB和負載均衡器上可能找到的所有超時值,因此我認爲它必須是超時設置爲60秒的應用程序本身。但是,我可能是錯的。
我的代碼:
/* GET home page. */
router.get('/main',function(req, res, next) {
req.connection.setTimeout(600000);
mainProcess(res);
//res.send("mainProcess() called");
});
UPDATE:
除此之外,我已經嘗試了不同的方法。我將此代碼添加到app.js
:
var connectTimeout = require('connect-timeout');
var longTimeout = connectTimeout({ time: 600000 });
app.use(longTimeout);
也沒有幫助。
UPDATE2: 我自己也嘗試增加超時在/bin/www
這樣的:
var server = http.createServer(app);
server.timeout=600000;
UPDATE3: 我已經注意到,超時有關nginx的配置。正如我的日誌所說:upstream timed out (110: Connection timed out) while reading response header
但是,我不能找出一種方法來編輯Elastic beanstalk上的nginx配置。我做了一些研究,但對我來說這似乎都不是標準,對於這樣簡單的事情來說太僵化了。
嘗試使用連接超時包的功能要求的參數裏面是這樣的: 'VAR超時=需要('連接-時間到'); app.post('/ test',timeout('6s'),function(req,res,next){console.log('test')})' –
謝謝,但我看不到我在哪裏那樣做,因爲我在任何地方都沒有'app.post'。表達框架做了不同的處理。只有'應用程序。使用('/',routes);' –
這只是你的第一個代碼在答案中的一個例子,它在請求函數之前就像這樣: '/ * GET主頁。 */ var timeout = require('connect-timeout'); (res), //res.send(「mainProcess()called」); })。 ;' –