
私は、PHP ベースのアプリケーションをホストするサーバーを再構成しなければならないというレガシー問題に取り組んでいます。決定事項の 1 つは、Apache から Nginx に移行することでした。
現在、アプリケーションは 2 種類の応答をホストしています。
/some/path -> HTML templates
/api/some/path -> JSON
アプリケーションは Laravel に基づいています。現在、2 つの仮想ホスト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;
}