从子域提供nginx静态文件(删除服务器)

时间:2014-06-23 03:53:33

标签: nginx

我正在使用nginx将子域的所有传入请求路由到特定服务器。如何配置nginx以同时提供来自同一服务器的静态文件?

server {
    server_name subdomain.XYZ.com;

    location / {
        proxy_http_version 1.1;
        proxy_redirect off;
        proxy_pass http://10.123.456.78:8000;
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 864000;
    }

    location /static/ {
        autoindex on;
        alias /static/;
    }
}

在这种情况下,对subdomain.XYZ.com的所有传入请求都会重新路由到10.123.456.78:8000。但是所有静态文件请求仍然在本地服务器上(运行nginx的那个)。

如何将静态文件路由到远程服务器?然后我如何启用这些静态文件的缓存和gzip压缩?

1 个答案:

答案 0 :(得分:0)

这很简单:

gzip on;
gzip_types text/plain application/json;
# or gzip *; for all

proxy_cache_path /data/nginx/cache keys_zone=one:10m;

location /static/? {
    proxy_cache one;
    proxy_pass http://10.123.456.78:8000/path/to/static/files;
}

我建议从源代码中解压缩它们(但在服务器10.123.456.78上)。