将通过Nginx发出的请求直接发送到Angular路由组件

时间:2018-12-05 19:44:17

标签: angular docker nginx

我在MEAN应用中一起设置nginx和angular时遇到问题。

我的应用程序是容器化的,在这里我有一个nginx容器,Angular容器,express容器等。

当前,我在我的development.conf中为每个可能的角度路由定位了一个位置,现在,我向URL中添加查询,因此我希望每个请求都由我的角度路由器直接处理。

下面是我拥有的一些代码片段,这些片段可能有助于清除我在做什么。

我的角路由器

const routes: Routes = [
  { path: 'x/:field', component: XComponent },
  { path: 'y/:field', component: YComponent },
  { path: '', component: LandingPageComponent },
];

@NgModule({
  imports: [
    RouterModule.forRoot(
      routes,
    ),
  ],
  exports: [RouterModule],
})

export class AppRoutingModule {}

Nginx Dockerfile

FROM nginx:1.13.8-alpine
COPY development.conf /etc/nginx/conf.d/default.conf

Nginx development.conf文件

upstream angular_domain {
    server angular:4200;
}
server {
    listen 80;

     location / {
         proxy_pass http://angular_domain/;
         proxy_set_header   Host $host;
         proxy_set_header   X-Real-IP $remote_addr;
         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header   X-Forwarded-Host $server_name;
     }
}

我一直在尝试不同的策略,但是在我发现的大多数示例中,nginx使用try_files部分尝试查找index.html,并且由于我在不同的容器中运行它们,因此我认为这不是可能吗?

任何有关我如何进行此工作的帮助将不胜感激。谢谢

0 个答案:

没有答案