[英]NGINX: Serve static files from different locations
我在两台不同的机器(不同的IP地址)上实现了2台服务器。 让我们将它们称为serverA和serverB 。
serverA是serverB将要馈送一些静态文件的位置。
serverA的配置文件是:
limit_req_zone $binary_remote_addr zone=lmz_serverA:10m rate=5r/s;
server {
listen 80; ## listen for ipv4; this line is default and implied
server_name serverA;
location /server_a {
limit_req zone=lmz_serverA burst=5 nodelay;
rewrite /server_a/(.*) /$1 break;
proxy_intercept_errors on;
proxy_pass http://0.0.0.0:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static/BIG/ {
root /safe/server_a/;
autoindex off;
expires 7d;
}
location /server_a/static/{
root /safe/;
autoindex off;
expires 7d;
}
location = /favicon.ico{
alias /safe/server_a/static/images/favicon.ico;
}
}
serverB的配置文件是:
limit_req_zone $binary_remote_addr zone=lmz_serverB:10m rate=5r/s;
server {
listen 80; ## listen for ipv4; this line is default and implied
server_name serverB;
location /server_b {
limit_req zone=lmz_serverB burst=5 nodelay;
rewrite /server_b/(.*) /$1 break;
proxy_intercept_errors on;
proxy_pass http://1.0.0.0:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /server_b/static/ {
root /safe/;
autoindex off;
expires 7d;
}
- - 结束
现在,想象一下,这服务器在不同的大洲..一些静态文件确定从serverA的 ,但BIG(/静态/ BIG /)的东西是给我一些麻烦,因为大多数用户都在serverB上的同洲担任。 因此,我想从serverA剪切这些BIG静态文件并将其放在serverB上,以便可以更轻松地下载它们。
有谁知道如何仅通过在serverB上使这些文件可用并更改nginx配置文件来实现这一目标?
重要提示 :serverA的实现了一个名为的appA Django应用程序,和ServerB实现名为appB的不同(但仍Django的)应用程序。 我无法更改这两个应用程序的代码。
提前致谢!
您可以从服务器执行302 Moved Temporarily
重定向,该服务器希望另一个服务器来处理大文件。
server_name serverA;
location /static/BIG/ {
return 302 $scheme://serverB$uri;
}
我在寻找类似的东西时偶然发现了这一点- 如何提供与要求不同的文件名 。 我的最终解决方案:
location /robots.txt {
# Try the beta file, which has a disallow everything
root /location/to/static/files;
try_files /robots-beta.txt =404;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.