Apache-Httpd

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

  • March 28, 2021

我有一個 EC2 伺服器(在私有子網中),我在其中執行一些 Python 微服務。從我在 Apps EC2(在公共子網中)上執行的應用程序中,我正在嘗試訪問 Python 微服務。

我在 Apps EC2 (public subnet) 上將 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) 

我知道我遺漏了一些東西,因為我似乎沒有提到第二個 EC2 根路徑。但我無法弄清楚如何。

謝謝

您忘記了結尾處的斜線location /pyserv/:)

引用自:https://unix.stackexchange.com/questions/642379