Javascript 如何在prod中正确代理对/api/ressource的请求?
我有一个webpack dev配置,前端dev服务器运行在8080上,而备份服务器运行在3000端口上 因此,在开发模式下,我的Web包开发服务器的配置如下:Javascript 如何在prod中正确代理对/api/ressource的请求?,javascript,node.js,express,webpack,Javascript,Node.js,Express,Webpack,我有一个webpack dev配置,前端dev服务器运行在8080上,而备份服务器运行在3000端口上 因此,在开发模式下,我的Web包开发服务器的配置如下: proxy: { '/api': 'http://localhost:3000', } 在为前端构建的静态文件提供服务的prod服务器中,我如何做同样的事情 我的prod服务器有以下代码,用于提供前端的静态文件: const proxy = require('http-proxy-middleware') app.use(
proxy: {
'/api': 'http://localhost:3000',
}
在为前端构建的静态文件提供服务的prod服务器中,我如何做同样的事情
我的prod服务器有以下代码,用于提供前端的静态文件:
const proxy = require('http-proxy-middleware')
app.use(express.static(dir))
/**
* Redirect everything that starts with /api/* to the backend rest server
*/
app.use('/api', proxy({ target: backendUrl }))
app.get('*', (req, res) => {
res.sendFile(path.resolve(dir + '/index.html'))
})
这不起作用,因为cookies似乎在代理过程中丢失了(与evyrhthing工作的Web包代理不同)
我是否以正确的方式处理此问题?在这种情况下,您可以创建一个
反向代理,该代理将接收来自前端的所有信息,向其他地址发出请求,然后将正确答案返回给前端。我以前开发过很多这样的东西,我创建了一个可以帮助你的
基本上,流程是:
渲染服务器(端口8080)->后端(端口3000)->渲染服务器(端口8080)->前端可以尝试使用:
- 作为反向代理的服务器(即nginx)
- 作为反向代理的节点http代理
- vhost中间件,如果每个域由同一个Express提供服务
codebase和node.js实例
您可能还需要检查cookie标志(changeOrigin、secure、cookieDomainRewrite等)
信息:如果在本地主机上运行http,如果响应中存在安全标志,则不会设置cookie哪些cookie丢失,是后端的还是产品的?我试着代理google.com,我得到了google的cookies。前端cookies丢失了。我想既然我收到了未经授权的回复。。。