nginx 설정에는 두 가지 위치가 있습니다.
location ^~ /media/ {
proxy_pass http://backend.example.com;
}
location ^~ /static/ {
proxy_pass http://backend.example.com;
}
이 두 가지를 한 곳으로 결합하려면 어떻게해야합니까?
내가 이미 한 일 :
나는 이 제안을 시도했다
location ~ ^/(static|media)/ {
proxy_pass http://backend.example.com;
}
그러나 그것은 나를 위해 작동하지 않습니다.
또한 백엔드를 사용하지 않으면 다음 구성이 올바르게 작동합니다.
location ~ ^/(static|media)/ {
root /home/project_root;
}
업데이트 (로그의 일부 문자열)
xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /content/11160/ HTTP/1.1" 200 5310 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 OPR/18.0.1284.68"
xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /static/font-awesome/css/font-awesome.min.css HTTP/1.1" 404 200 "http://www.example.com/content/11160/" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome$
xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 404 200 "http://www.example.com/content/11160/" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.$
xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /static/css/custom.css HTTP/1.1" 404 200 "http://www.example.com/content/11160/" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/53$
xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /static/colorbox/colorbox.css HTTP/1.1" 404 200 "http://www.example.com/content/11160/" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Sa$
xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /static/colorbox/jquery.colorbox-min.js HTTP/1.1" 404 200 "http://www.example.com/content/11160/" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.$
xx.xx.xx.xx - - [31/Dec/2013:13:48:18 +0000] "GET /static/js/scripts.js HTTP/1.1" 404 200 "http://www.example.com/content/11160/" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537$
해결책
실제로 내 솔루션은 정상적으로 작동합니다.
location ~ ^/(static|media)/ {
root /home/project_root;
}
이 문제는 백엔드와 아무 관련이 없습니다. Guido Vaccarella가 올바르게 location ~ ...
일치하는 것을 발견했을 때 일치하는 다른 것을 따라갔습니다 location ~ ...
.
정규식 프록시 패스가 작동하지 않는 이유를 모르겠습니다. 시도하면 어떻게 되나요?
—
Grumpy
시도하면 프론트 엔드 nginx에서 404 오류가 발생합니다.
—
Vlad T.
위치 설명의 끝에있는)가 질문에 오류이거나 구성 파일에도 있습니까?
—
Guido Vaccarella
나머지 구성에 오류가 있는지 다시 확인해야합니다. 또한 404를 던지는 이유와 위치, 누락 된 부분을 확인하여 조사 할 수 있습니다. 발견되지 않은 오류 문서에서 404가 발생하여 이전에 발생한 오류를 살펴볼 수도 있습니다.
—
Grumpy
오류 로그에서 오류 제공하십시오
—
모하마드 AbuShady