1

私のmanifest.appcacheファイルはhttp://example.com/manifest.appcacheにありますが、NGINXはこのファイルを探しています/usr/share/nginx/html/manifest.appcache

example.conf ファイルに以下を追加しました。

 location /manifest.appcache {
   try_files $uri  /home/sushi/www/example/manifest.appcache;
 }

そして、私のルートは次のように設定されています

root /home/sushi/www/example/;

私は何を間違っていますか?

4

1 に答える 1

1

あなたが使用しているものとまったく同じである場合、nginx構成は問題ないように見えserver_nameます。何が問題なのか正確にはわかりませんが、構成を整理させてください。役立つかもしれません

リダイレクトの場合、if 条件を使用する代わりに、別のサーバーを使用してリダイレクトを行うことを好みます

server {
    listen 80;
    server_name www.example.com;
    return 301 example.com$request_uri;
}

ルートとインデックスを再宣言する必要はありません。サーバーブロックレベルで一度指定するだけで十分です。

server {
    listen 80;
    server_name example.com;
    root /home/sushi/www/example/;
    access_log /home/sushi/www/example/logs/access.log;
    error_log /home/sushi/www/example/logs/error.log;
    index index.html index.htm;
    location / {
       try_files $uri $uri/ =404;
    }
}

あなたmanifest.appcacheは正確にどこ$uriに見えるので、明示的に言及する必要はありません。問題は、nginxがサーバーブロックと一致しないことです。

別のランダムな考えは、おそらくnginxがサーバーの存在を認識していないということです。これは、サーバーの作成後にnginxを再起動しなかったためです..試しましたか?

編集: 内のブロックファイルnginx.conf内のここに移動example.conf

server {
    listen 80;
    server_name example.com;
    root /home/sushi/www/example/;
    access_log /home/sushi/www/example/logs/access.log;
    error_log /home/sushi/www/example/logs/error.log;
    index index.html index.htm;
    location / {
       try_files $uri $uri/ =404;
    }
    location ~* \.(?:manifest|appcache|html?|xml|json)$ {
        expires -1;
        access_log logs/static.log;
    }
}
于 2013-09-21T21:29:05.393 に答える