Nginx

Nginx 重寫 url 以進行代理傳遞

  • January 9, 2021

所以我在一個 kubernetes 集群中有兩個 nginx 伺服器。我希望一個 nginx 伺服器充當另一個為我的 phpmyadmin 文件提供服務的反向代理。

要從第一台伺服器訪問我的 phpmydadmin,使用者必須輸入: https://mynginx.example/phpmyadmin 我希望我的 nginx 伺服器在代理通過之前重寫 URI,並將 /phpmyadmin 替換為 /。

我現在寫這個

     location                /phpmyadmin {
           rewrite           /phpmyadmin(/.*) $1 break;
           proxy_pass        https://phpmyadmin.default.svc.cluster.local:5000;
     }

但實際上,當它返回 404 錯誤並且當我看到服務於 phpmyadmin 的 nginx 上的日誌時,我看到:

19 open() "/var/www/localhost/htdocs/phpmyadmin/phpmyadmin" failed (2: No such file or directory)

它似乎沒有用 / 替換我的 /phpmyadmin。

我所有的配置文件是:

server {
       listen                  80 default_server;
       listen                  [::]:80 default_server;

       return                  301 https://$host$request_uri;
}

server {
     listen                  443 ssl default_server;
     root                    /www;
     index                   index.html;

     ssl_certificate         /tls/tls.crt;
     ssl_certificate_key     /tls/tls.key;

     location                /phpmyadmin {
           rewrite           /phpmyadmin(/.*) $1 break;
           proxy_pass        https://phpmyadmin.default.svc.cluster.local:5000;
     }

     location                ~ /wordpress(.*) {
           return            307 $scheme://$host:5050$1;
     }
}

我修好了它 !這是我的正則表達式 (/.*) 的問題,我刪除了 /,現在它可以工作了感謝您的幫助和建議,我點擊連結並學到了一些東西 x)

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