
간단히 말해서 내 Nginx 구성은 다음과 같습니다.
...
server {
listen 80;
server_name whatever;
root /var/www/;
location /api/1.0 {
...
`proxy_pass http://localhost:8000/;
}
location /api/2.0 {
...
proxy_pass http://localhost:8080/;
}
location / {
root /var/www/static/;
default_type text/html;
try_files $uri $uri/index.html index.html;
}
}
이제 로 이동하여 localhost
정적 파일에 해당하지 않는 임의의 이름을 추가하거나 두 애플리케이션(예: ) 중 하나에 해당하는 이름을 추가하면 http://localhost/whatever
로그에 이상한 오류가 발생합니다.
2013/09/14 20:58:20 [오류] 28731#0: *2 open() "/var/wwwindex.html" 실패(2: 해당 파일 또는 디렉터리 없음), 클라이언트: 127.0.0.1, 서버: ec2 -54-234-175-21.compute-1.amazonaws.com, 요청: "GET /whatever HTTP/1.1", 호스트: "localhost"
나는 이것이 내 이해 부족을 반영한다고 생각합니다. 왜냐하면 nginx가 "/var/wwwindex.html"에 액세스하려고 하는 이유를 정말로 모르기 때문입니다. 저는 이 요청이 성공하기를 원하지 않으며 단지 제가 이해하는 방식으로 실패하기를 원할 뿐입니다. 정확히 무슨 일이 일어나고 있는 걸까요? 감사합니다. 미리 감사드립니다!
답변1
귀하 try_files
의 끝은 index.html
에 추가되며 의 root
후행은 무시됩니다. 그것에 를 추가하십시오 ./
root
/
try_files $uri $uri/index.html /index.html;