从子域提供nginx静态文件(删除服务器)
我正在使用nginx将子域的所有传入请求路由到特定的服务器。如何配置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
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数据。