2017-11-25 10 views
0

私は、CORSを処理するためにURIルーティングを利用したい2つのマイクロサービスから成るドッカー作成ファイルを持っています。ここに私のコンファイルです:NGINX + Dockerはルーティングの問題を作成します

version: "3.1" 
services: 
    auth-api: 
    image: xxxx/auth-api:latest 
    restart: always 
    depends_on: 
     - "user-api" 
    user-api: 
    image: xxxx/user-api:latest 
    restart: always 
nginx: 
    image: nginx 
    restart: always 
    ports: 
     - "80:80" 
    links: 
     - "auth-api" 
     - "user-api" 
    volumes: 
     - ./nginx:/etc/nginx 

私は、ルーティングのためのnginxのを使用したいが、との問題に実行しています404のまたは405のリソースにアクセスしようとしたとき。私はいくつかの異なる構成を試しましたが、しばらくの間、NGINXはapiエンドポイントを見つけられなかったと言っていました。私は解決したので、私の問題は主にルーティング設定に関するものだと思います。これらのリクエストには/auth/userとします。

worker_processes 1; 

events { worker_connections 1024; } 

http { 

    sendfile on; 

    upstream auth-target { 
     server auth-api:8080; 
    } 

    upstream user-target { 
     server user-api:8080; 
    } 

    server { 
     listen  80; 

     location /auth { 

      proxy_pass http://auth-target; 

      proxy_redirect  off; 
      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; 
     } 

     location /user { 

      proxy_pass http://user-target; 

      proxy_redirect  off; 
      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にはかなり新しいので、私がやっていることが正しいかどうかは分かりません。また、どちらのAPIもコンテナビルドの一部として公開されていることに注意してください。

答えて

0

ここに問題がありました。ルーティングは機能していましたが、サービスから404を返送していました。これは、ロケーションルートがリクエストと一緒に渡されたためです。だから、最後に、私はこの答えを見つけました:

それはあなたが私の設定ファイルは、次のようなものを探してしまったので、場所を削除するために、末尾にスラッシュが必要であることを指摘

https://serverfault.com/questions/562756/how-to-remove-the-path-with-an-nginx-proxy-pass

location /auth/ { 

      proxy_pass http://auth-target/; 

      proxy_redirect  off; 
      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; 
     } 
関連する問題