Những gì tôi đang cố gắng để làm:Node Proxy - Proxy một mục tiêu SSL localhost từ một máy chủ http cơ bản
Proxy một api java chạy trên https://127.0.0.1:443/api/
cùng bên UI của tôi chạy trên phi SSL http://127.0.0.1:1337/ theo thứ tự để đi vòng quanh một số vấn đề của CORS.
nỗ lực của tôi:
- Proxy api tại cảng SSL 443 để phi SSL cổng phát triển của tôi của 1338.
- Proxy UI của tôi để 1337
- Proxy 1.137-
:8080/index.html
và proxy 1338 đến:8080/api/
- Truy cập ứng dụng của tôi từ máy chủ cục bộ: 8080
Vấn đề của tôi:
Giao diện do thỏa thuận hợp tốt ... nhưng tôi không thể nhấn API tại :8080/api/httpSession/init
Vâng, tôi vẫn có thể nhấn API tại https://localhost/api/httpSession/init
api.js - Renders index.html tại địa chỉ: 1337
var app = express();
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
});
var options = {
changeOrigin: true,
target: {
https: true
}
};
httpProxy.createServer(443, '127.0.0.1', options).listen(1338);
start.js - Proxy 133 7 và 1338 thành 8080
// First I start my two servers
uiServer.start(); // renders index.html at 1337
apiServer.start(); //
// I attempt to patch them back into one single non-SSL port.
app
.use('/', proxy({target: 'http://localhost:1337/'}))
.all('/api/*', proxy({target: 'http://localhost:1338/'}))
.listen(8080, function() {
console.log('PROXY SERVER listening at http://localhost:%s', 8080);
});
Tôi khuyên bạn nên sử dụng nginx làm proxy ngược để đạt được những gì bạn cần. [Ở đây] (https://www.garron.me/en/linux/nginx-reverse-proxy.html) là một số hướng dẫn để đạt được một cái gì đó tương tự như những gì bạn cần. [Điều này] (http://serverfault.com/questions/706694/use-nginx-as-reverse-proxy-for-multiple-servers) cũng sẽ giúp ... – mkhanoyan
Có lý do nào bạn đang ủy nhiệm api của bạn hai lần ? Đầu tiên đến cổng 1338, sau đó đến cổng 8080 tại/api /? –
Tôi biết điều này là tắt chủ đề nhưng bạn cũng có thể sử dụng một máy chủ web với proxy ngược để đạt được điều này trên cùng một cổng. Ví dụ, bạn có thể sử dụng IIS hoặc Nginx để tách riêng các điểm cuối proxy ngược trên một máy chủ ảo. –