Назад | Перейти на главную страницу

Настройте nginx для обслуживания статики только через поддомен

Все, что я хочу сделать, это настроить сервер nginx для обслуживания ТОЛЬКО статических файлов. Этот сервер nginx находится за HAProxy, и HAProxy направляет все запросы статических файлов на этот сервер nginx.

Я уже создал запись subdomain: static.mysite.com в диспетчере DNS Linode, но я не уверен, что именно делать с файлом конфигурации nginx, вот что у меня сейчас:

wroker_process 1;

events {
        worker_connections  1024;
}

http {
        include                 mime.types;
        default_type            application/octet-stream;

        sendfile                on;
        keepalive_timeout       60;
        gzip                    on;
        gzip_http_version       1.1;
        gzip_comp_level         3;
        gzip_types              text/plain text/html text/css
                                application/x-javascript text/xml
                                application/xml application/xml+rss
                                text/javascript;

        server {
                  listen                 8484;
                  client_max_body_size   1M;
                  server_name            www.mysite.com mysite.com;
                  access_log             /home/www-data/logs/nginx_access.log;
                  error_log              /home/www-data/logs/nginx_error.log;

                  location / {
                        index           index.html;
                  }

                  location ~* /static/ {
                        autoindex       on;
                        alias           /home/www-data/mysite/static/;
                        access_log      on;
                  }

                  location = /favicon.ico {
                        rewrite (.*) /static/favicon.ico;
                  }

                  location = /robots.txt {
                        rewrite (.*) /static/robots.txt;
                  }
         }
}

Обратите внимание, что в настоящее время все запросы статических файлов (к www.mysite.com/static/...) отображается на ресурсы, доступные в /home/www-data/mysite/static/.... Аналогичным образом запрос на www.mysite.com/favicon.ico отображается на /home/www-data/mysite/static/favicon.ico.

Как мне изменить указанное выше, чтобы использовать поддомен для всех статических файлов? Например, static.mysite.com/... отображается на /home/www-data/mysite/static/...?

Используйте правило перезаписи в nginx.conf

местоположение ^ ~ / ~ sub / {

переписать ^ / sub /(.*) http://sub.example.com/1 доллар навсегда;

}