Я использую grunt-connect-proxy
, чтобы перенаправить прокси-страницу на мой сайт CloudFront, но она не может работать.
ENV:
- хрюканье:
^0.4.5
- grunt-contrib-connect:
^0.9.0
,
- grunt-connect-proxy:
^0.2.0
,
Что я пробовал
- Использование
http-proxy
( Успех ):
httpProxy.createProxyServer({target: {
protocol: 'http:',
host: 'myhostname.com',
port: 80,
},
headers: {
host: 'myhostname.com'
}}).listen(8080)
- Использование
curl
( Успех ):
curl -v http://myhostname.com/signin
- Использование
Nginx
( Успех ):
location ~* ^/(signin|styles|scripts) {
proxy_pass http://myhostname.com;
}
Использование grunt-connect-proxy
Сбой
connect: {
server: {
options: {
open: true,
base: ['app'],
middleware: function(connect, options, middlewares) {
if (!Array.isArray(options.base)) {
options.base = [options.base];
}
middlewares.push(modRewrite([
'^\\/customer-portal\\/((?!\\.).)*$ /index.html'
]));
middlewares.push(connect.static(options.base[0]));
middlewares.push(require('grunt-connect-proxy/lib/utils').proxyRequest)
return middlewares;
}
},
proxies: [{
context: ['/signin', '/scripts', '/styles'],
host: 'myhostname.com',
port: '80',
https: false,
}]
},
}
Он получает код 403 от CloudFront (я не уверен, что 403 в CloudFront равен 404 или нет).
если я добавлю headers
к proxies
proxies: [{
...
headers: {
'host': 'myhostname.com'
}
...
}]
Я получаю ERR_CONTENT_DECODING_FAILED
ошибку от Chrome.
Итак, какова правильная конфигурация ??