簡體   English   中英

Nginx反向代理配置

[英]Nginx Reverse proxy config

我遇到了一個簡單的配置與nginx一起工作的問題。 我有一個托管docker容器的服務器,所以nginx在容器中。 所以我們打電話給url foo.com 我想url foo.com/service1實際上只是去另一個端口的foo.com,所以它實際上是拉foo.com:4321foo.com/service2來拉foo.com:5432等等上。 這是我遇到問題的配置。

http {
    server {
        listen 0.0.0.0:80;

        location /service1/ {
            proxy_pass http://192.168.0.2:4321/;
        }

        location /service2/ {
            proxy_pass http://192.168.0.2:5432/;
        }

    }
}

所以服務和nginx的生活在192.168.0.2。 能夠做到這一點的首選方法是什么? 先感謝您!

作為旁注,這是在docker容器中運行的。 謝謝!

我認為您應該首先通過刪除反向代理配置來檢查您的foo.com是否指向正確的IP地址。 例如

http {
    server {
        listen 80;
        server_name foo.com;

        location / {
        }
    }
}

然后,如果您的ip地址已經在端口80上運行了服務,則應為每個服務指定server_name ,如我的示例所示。 Nginx只能通過server_name區分哪個服務響應哪個域。

*我的猜測是你忘記了server_name選項。

http {
    server {
        listen 80;
        server_name foo.com;

        location /service1/ {
            proxy_pass http://192.168.0.2:4321/;
        }

        location /service2/ {
            proxy_pass http://192.168.0.2:5432/;
        }

    }
}

我猜你的問題與Nginx本身無關,而是與Docker網絡有關。 您提供的信息不足以得出詳細的結論,但這里有一些建議:

  1. 在運行nginx容器的同一主機上運行一個簡單的Docker容器,並從該容器內部嘗試curl (我已經看到你的答案,你可以從運行Nginx的服務器調用curl ,但它實際上並不相同)

  2. 例如,如果運行nginx容器的服務器是OSX或Windows,它可能使用具有自己的網絡堆棧,IP地址,路由等的中間Linux虛擬機。

這是我向內玻璃魚發送的信息。 檢查使用proxy_redirect off&proxy_set_header X-NginX-Proxy true;

    #Glassfish
    location /MyService/   {

            index index.html;

            add_header Access-Control-Allow-Origin $http_origin;

            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-NginX-Proxy true;
            proxy_ssl_session_reuse off;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:18000/MyService/;

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM