0

ワイルドカード静的ドメインをセットアップしようとしています。私のサーバーは複数のドメインをホストしているため、すべてのドメインを手動で追加することなく、すべてのドメインに対して 1 つの構成を使用したいと考えています。これまでのところ、私はこれを持っています...

server {
    server_name static.* www.static.*;

    root /var/web/$host/;

    access_log off;
    error_log off;

    location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js) {
            add_header        Cache-Control public;
            add_header        Cache-Control must-revalidate;
            expires           7d;
    }
    location  / {
            deny all;
    }

}

サブドメイン /var/web/subdomain.example.com/ を含むすべてのファイルは、その形式で /var/web/example.com/ に保存されます。

このドメインは静的コンテンツ (画像/css/js などのみ) 用であり、ルートを通常のサイトと同じにしたいのですが、静的ファイルのみを許可します (したがって、php fpm はここにありません)。

nginx エラーはありませんが、404 が表示されます。ルート /var/web/$host/ に関係しているように感じます。何か案は?

4

2 に答える 2

0

しばらくグーグルで調べてみると、http://nginx.org/en/docs/http/server_names.htmlにたどり着きました。

server_nameで正規表現を実行できることがわかった場所。だからこれは私のために働いた:

server {
    listen 80;
    server_name ~^static\.(?<domain>.+)$;

    root /var/web/$domain/;

    access_log off;
    error_log off;

    location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js) {
            add_header        Cache-Control public;
            add_header        Cache-Control must-revalidate;
            expires           7d;
    }
    location  / {
            deny all;
    }

}

于 2013-11-03T14:43:14.493 に答える
0

私は試してみます

root /var/web/$http_host/;

また、固定ドメイン名 (www.static.whatever.com など) を使用して、少なくとも 1 つの静的ファイルにアクセスできるかどうかを確認します。次に、問題にさらに自由度を追加します。

また、私は投げます

listen 80;

念のため。

于 2013-11-03T14:28:41.033 に答える