
저는 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;
}