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

从子域提供nginx静态文件(删除服务器),nginx,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

我正在使用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压缩呢?

非常简单:

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上。

这不起作用,nginx会忽略/static url I get a 404 Not found。您需要在尾部斜杠后添加问号,使其成为可选。更新的答案仍然不起作用。此外,端口10.123.456.78:8000正在运行flask/gunicorn,而这些静态文件主要是图像文件。我不希望flask/gunicorn为图像文件提供服务,我希望nginx管理和缓存它们。然后您也需要在该机器上使用nginx。在这台机器上,应该启用nginx来gzip数据。