
我正在處理一些遺留問題,我必須重新配置託管基於 PHP 的應用程式的伺服器。其中一項決定是從 Apache 遷移到 Nginx。
現在應用程式託管兩種回應;
/some/path -> HTML templates
/api/some/path -> JSON
該應用程式基於 Laravel。現在,我有兩台虛擬主機,my.app.com
並且api.app.com
.我認為一個不錯的解決方案是將api.app.com
請求代理到請求路徑前面my.app.com
。/api
所以;
GET api.app.com/user -> NGINX PROXY -> my.app.com/api/user
我不是 Nginx 設定的專家,我認為這應該有效:
location / {
proxy_pass http://my.app.com:8888/api;
proxy_set_header X-Real-IP $remote_addr;
}
這個想法是為了確保嘗試 GET 的人api.app.com/something
實際上得到了回應,my.app.com/api/something
但這是行不通的。我不斷從應用程式中收到異常,說在路線中找不到路徑。
誰能告訴我這是怎麼回事?
答案1
來自的提示https://serverfault.com/a/586607:
location ~ /(?<path>.*) {
proxy_pass http://my.app.com:8888/api/$path;
proxy_set_header X-Real-IP $remote_addr;
}