我正在使用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压缩?
答案 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
上)。