我有一個node.js應用程序提供靜態文件(html,js,css)。在靜態文件中,完成了一些ajax請求(在請求中使用/ TEST)。我需要將這些請求代理到在localhost上運行的另一臺服務器:213445。靜態頁面顯示正常,但,當涉及到代理的請求時,它永遠掛...nodejs代理沒有響應
我的代碼是:
var express = require("express");
var httpProxy = require('http-proxy');
var fs = require('fs');
// Create https server
var app = express.createServer({
key: fs.readFileSync('privatekey.pem'),
cert: fs.readFileSync('certificate.pem')
});
// Handle static files
app.use(express.static(__dirname + '/public'));
// Proxy request
app.all('/TEST/*',function(req, res){
// Remove '/TEST' part from query string
req.url = '/' + req.url.split('/').slice(2).join('/');
// Create proxy
var proxy = new httpProxy.HttpProxy();
proxy.proxyRequest(req, res, {
host: 'localhost',
port: 21345,
enableXForwarded: false,
buffer: proxy.buffer(req)
});
});
// Run application
app.listen(10443);
事實上,經過一段時間後,我決定採取相反的行動。如果請求了靜態文件,Nginx將爲它們提供服務。如果請求一些動態文件,那麼Nginx將它們代理到我的node.js應用程序。我認爲這是更多Nginx的工作來提供靜態文件。 – Luc
現在有同樣的問題並使用相同的解決方案。仍然討厭使用靜態代碼破壞代理 –