Nginx

Nginx 根據 URL 參數轉發請求

  • September 19, 2015

設想 :

Web 請求在埠 80 上到達 nginx。我需要根據 URL 參數轉發請求。

如果 URL 包含 URL 中的userId=foo任何位置,則它必須到達伺服器 A

如果 URL 包含 URL 中的userId=bar任何位置,則它必須到達伺服器 B

我可以使用什麼配置選項來實現這一點?

/etc/nginx/sites-available/default

server {
   listen      80;
   server_name example.com;

   location ~ userId=foo {
        return     301 http://domainOfServerA$request_uri;
   }

   location  ~ userId=bar {
       return      301 http://domainOfServerB$request_uri;
   }
}

無論如何,如果 bar/foo 是一個變數,您應該為此編寫正則表達式。

引用自:https://serverfault.com/questions/723282