我开发了一个角网站,并在proxy.conf.js文件中设置了以下代理设置。
const proxyConfig = [
{
context: '/web/api/webclients/**',
target: 'https://10.109.102.109',
changeOrigin: true,
secure: false
},
{
context: '/restful/**',
target: 'https://10.109.110.190',
changeOrigin: true,
secure: false
},
{
context: '/api/**',
target: 'http://10.109.105.107',
changeOrigin: true,
secure: false
}
];
在开发模式下,proxy.conf.js按预期工作。
我在package.json文件中有这些用于启动和构建。
"build": "ng build --aot --prod",
"start": "ng serve --proxy-config proxy.conf.js -o",
运行“npm run build”并使用生成的文件在IIS 8上托管网站后,需要使用代理设置的页面无效。
例如,我的请求https://localhost/web/api/webclients/authentication应转到https://10.109.102.109/web/api/webclients/authentication
如果我在Windows服务器上托管此网站,或者如果我将其托管在非Windows服务器上,如何设置这些代理设置,如何在IIS中设置这些代理设置?
答案 0 :(得分:2)
我猜到现在为止您已经找到答案了,但是我还是要尝试回答这个问题,因为这是在搜索“角度代理iis”时的第一个结果。
proxy.conf.js
文件仅在开发模式下为应用程序提供服务时使用。为生产而构建时,开发服务器不包含在输出中(因此proxy.conf.js也不包含在输出中)。对于生产,您需要再次配置Web服务器(nginx,apache,IIS等)以代理这些路径。
特别是对于IIS,您需要先安装ARR模块,然后才能为后端设置代理规则。在here中查找有关如何正确设置的详细教程。
答案 1 :(得分:0)
proxy.config 在 prod 模式下不起作用。参考https://stackoverflow.com/questions/48920937/proxy-config-json-is-not-working-in-angular-4-5-when-i-use-ng-build/49260885#49260885
作为反向代理的中间件 Web 服务器适用于您的场景。如果你不知道使用哪个 web 服务器,我推荐 Nginx
您可以通过将其配置到您的 nginx 配置中来实现代理后端。
nginx.conf
location /api/ {
proxy_pass http://127.0.0.1:8087;
#all incoming http request with /api/ will be forwarded to http://127.0.0.1:8087/api/
}