nginx 重定向到 EC2 中的 API 服务器

nginx 重定向到 EC2 中的 API 服务器

我有一个 EC2 服务器(在私有子网中),我在其中运行一些 Python 微服务。从在 Apps EC2(公共子网中)上运行的应用程序中,我尝试访问 Python 微服务。

我将 nginx 设置为 Apps EC2(公共子网)上的反向代理。根据我对 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) 

我知道我遗漏了一些东西,因为我似乎没有提到第二个 EC2 根路径。但我无法弄清楚如何。

谢谢

答案1

你忘记了末尾的斜杠location /pyserv/:)

相关内容