
私の 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
、静的ファイル内のどの名前にも対応しない、または 2 つのアプリケーション (例 ) のどちらでも意味を持たないランダムな名前を追加すると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;