Nginx 프록시 경로

Nginx 프록시 경로

nginx에서 localhost:20000의 다른 웹 서버를 프록시하려고 합니다. 이것은 작동합니다:

location/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:20000
}

그러나 다음과 같이 변경하면:

location /myApp {
proxy_set_header..

index.html 파일과 다른 모든 .css & .js 404만 로드할 수 있습니다. 브라우저 헤더에서 이러한 파일에 대한 요청이 mysite.com/myApp 대신 mysite.com/jquery.js로 이동하는 것을 볼 수 있습니다. /jquery.js이므로 해당 시점에서 프록시가 설정되지 않은 것으로 추측되므로 404가 됩니다. 이러한 URL에 대한 경로는 상대적으로 코딩됩니다(). 이것을 작동시키려면 어떻게 해야 합니까? 프록시된 index.html 파일의 경로를 변경할 수 없습니다. 감사해요

편집하다. 백엔드 웹 서버는 thttpd이며 오래되었습니다. 이것이 set_head 호스트에 영향을 미치나요? 죄송합니다. 해당 레이어가 어떻게 작동하는지 잘 모르겠습니다.

답변1

우선 , location /myApp {}이상이어야 합니다 location {}. 둘째, 아마도 더 중요한 것은 root다음과 같은 섹션을 적절하게 할당하고 추가하여 정적 파일을 직접 제공할 수 있다는 것입니다.

location ~* \.(css|jpg|png|gif|jpeg|js|ico|swf|mp3)$ { break; }

대신 URI를 수정하려는 경우 다음 location / {}섹션에서 도움이 될 수 있습니다.

rewrite ^/(.*)$ /myApp/$1 break;

관련 정보