簡體   English   中英

如何根據 nginx 中的 url 方案(ws:// 或 http://)為同一域使用不同的 proxy_pass 端口

[英]How to use diffrent proxy_pass ports for the same domain depending on the url scheme (ws:// or http://) in nginx

我有一個子域(比如 api.xyz.com)

我有兩項服務 -

  1. 一個 HTTP REST API,(比如端口 3000)
  2. 網絡套接字服務。 (比如在端口 5000 上)

我想使用相同的子域,但根據方案將其與兩種服務一起使用

例如

如果我使用http://api.xyz.com --> 它 proxy_passes 到端口 3000

如果我使用ws://api.xyz.com --> 它 proxy_passes 到端口 5000

有人可以指出我正確的方向嗎? (現在,我正在使用兩個單獨的子域 api.xyz.com 和 ws.xyz.com)

找到了解決方案。

server {

    server_name api.xyz.com;
    location / {
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;

            if ($http_upgrade = "websocket") {
                    add_header  X-Upstream  $upstream_addr;
                    proxy_pass  http://127.0.0.1:5000;
            }

            proxy_set_header   Host $http_host;
            proxy_pass         http://127.0.0.1:3000;
    }
 }

所以你必須檢查標題和 proxy_pass 到適當的端口。

暫無
暫無

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

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