设置 nginx 仅通过子域名提供静态服务

设置 nginx 仅通过子域名提供静态服务

我要做的就是设置一个 nginx 服务器来仅提供静态文件。此 nginx 服务器位于 HAProxy 后面,HAProxy 将所有静态文件请求定向到此 nginx 服务器。

我已经在 Linode DNS 管理器中创建了一个子域名:static.mysite.com 记录,但我不确定究竟该如何处理 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/...

答案1

在 nginx.conf 中使用重写规则

位置 ^~ /~sub/ {

重写 ^/sub/(.*)http://sub.example.com/1 美元永久;

}

相关内容