nginxはEC2のAPIサーバーにリダイレクトされます。

nginxはEC2のAPIサーバーにリダイレクトされます。

いくつかのPythonマイクロサービスを実行しているEC2サーバー(プライベートサブネット)があります。 Apps EC2(パブリックサブネット)で実行されているアプリケーションからPythonマイクロサービスにアクセスしようとしています。

Apps EC2(パブリックサブネット)でnginxをリバースプロキシに設定しました。 nginxに関する最小限の知識に基づいて、次のconfファイルを追加しました。

server {

        listen   80;
        server_name 3.23.xxx.xxx EC2-public.test.com;

        location / {
                root   /var/www/Myapp/App;
                index  index.php index.html index.htm;
                autoindex on;  
        }
        #Application APIs on EC2 public 
        location /api {
                proxy_pass http://myappsip-EC1.:4000;
        }

        #My second EC2 Python microservice APIs
        location /pyserv {
                proxy_pass http://myprivateEC2-IP:5000/;
         }

}

問題は、Proxy_passに絶対パスを提供すると、公開URLからマイクロサービスEC2のサービスにアクセスできますが、それに関連するパスにはアクセスできないことです。すべての相対パスは、デフォルトのEC2ルートパスから取得されたようです。

=> EC2-public.test.com/ (primary application - works)
=> EC2-public.test.com/pyserv      (API1 on second EC2 - http://myprivateEC2-IP:5000/- works since given in proxy_pass) 
=> EC2-public.test.com/pyserv/srv1 (API 2 on second EC2 - http://myprivateEC2-IP:5000/srv1 - does not work) 

私は2番目のEC2ルートパスに言及していないようで、何かが欠けていることを知っています。しかし、方法がわからない。

ありがとう

ベストアンサー1

末尾のスラッシュを忘れてしまったlocation /pyserv/:)

おすすめ記事