www.test.com由node来处理,api.test.com由yii2处理,遇到www.test.com/api这种url通过代理转发给api.test.com处理
使用node作为中间层进行代理转发
var app = express();
var proxy = require('express-http-proxy');
app.use('/api', proxy('api.test.com',{
proxyReqOptDecorator: function(proxyReqOpts, srcReq) {
return new Promise(function(resolve, reject) {
proxyReqOpts.headers['X-Forwarded-For'] = srcReq.ip;
resolve(proxyReqOpts);
})
}
}));
Yii2 main.php配置文件
'components' => [
'request' => [
'cookieValidationKey' => '',
'enableCsrfValidation' => false,
'enableCsrfCookie' => false,
'enableCookieValidation' => false,
'baseUrl' => '/',
'parsers' => [
'application/json' => 'yii\web\JsonParser',
],
'trustedHosts' => [
'192.168.1.29',
],
'ipHeaders' => [
'X-Forwarded-For',
],
],
]
srcReq.ip为原客户端IP,通过request.headers设置X-Forwarded-For传给Yii2
|